Viết thuật toán nhập vào 2 số M và N thuộc kiểu số nguyên.
a. Tìm ước chung lớn nhất của 2 số M và N.
b. Tìm bội chung nhỏ nhất của 2 số M và N.
Hãy nhập câu hỏi của bạn vào đây, nếu là tài khoản VIP, bạn sẽ được ưu tiên trả lời.
Câu 1:
uses crt;
var m,n,ucln,i:integer;
begin
clrscr;
write('Nhap m='); readln(m);
write('Nhap n='); readln(n);
ucln:=1;
if m<n then
begin
for i:=1 to m do
if (m mod i=0) and (n mod i=0) then
begin
if ucln<i then ucln:=i;
end;
end
else begin
for i:=1 to n do
if (m mod i=0) and (n mod i=0) then
begin
if ucln<i then ucln:=i;
end;
end;
writeln(ucln);
readln;
end.
Câu 2:
uses crt;
var m,n,bcnn,i:integer;
begin
clrscr;
write('Nhap m='); readln(m);
write('Nhap n='); readln(n);
bcnn:=m*n;
for i:=m*n-1 downto 1 do
if (i mod m=0) and (i mod n=0) then
begin
if bcnn>i then bcnn:=i;
end;
writeln(bcnn);
readln;
end.
#include <bits/stdc++.h>
using namespace std;
long long m,n;
//chuongtrinhcon
long long ucln(long long m,long long n)
{
if (n==0) return(m);
else return(ucln(n,m%n));
}
//chuongtrinhchinh
int main()
{
cin>>n>>m;
cout<<ucln(n,m);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
long long a,b;
//chuongtrinhcon
long long ucln(long long a,long long b)
{
if (b==0) return(a);
else return(ucln(b,a%b));
}
//chuongtrinhchinh
int main()
{
cin>>a>>b;
cout<<ucln(a,b);
return 0;
}
a)
program UCLN_va_BCNN;
uses crt;
var a,b,c,r,p:integer;
begin
clrscr;
write('nhap a,b:');readln(a,b);
if a<b then
begin
c:=a;
a:=b;
b:=c;
end;
p:=a*b;
r:=a mod b;
while r<>0 do
begin
a:=b;
b:=r;
r:=a mod b;
end;
writeln('UCLN la: ',b);
writeln('BCNN la: ',p div b);
readln;
end.
b)
program fibonaci;
uses crt;
var i,n:integer;
a:array[1..30]of integer;
begin
clrscr;
repeat
write('nhap n:');readln(n);
if (n<1)or(n>30) then writeln('so n phai lon hon hoac bang 1 va nho hon hoac bang 30:);
until (n>=1)and(n<=30);
a[1]:=1;
a[2]:=1;
for i:=3 to n do
a[i]:=a[i-1]+a[i-2];
writeln(n,' so fibonaci dau tien la:');
for i:=1 to n do
write(a[i]:3);
readln;
end.
- Gọi d là ước chung lớn nhất của n và n + 2
=> n chia hết d và n + 2 chia hết d
=> ( n + 2 ) - n chia hết d
=> 2 chia hết d
=> d = 1 hoặc 2
Nếu n lẻ => d = 1
Nếu n chẵn => d = 2
Vậy ước chung lớn nhất của n và n + 2 là 1 hoặc 2
Ta có : Nếu ước chung lớn nhất của n và n + 2 = 1
thì bội chung nhỏ nhất của n và n +2 = n(n+2)
Nếu ước chung lớn nhất của n và n +2 là 2
thì bội chung nhỏ nhất của n và n +2 = n(n+2) : 2
Làm như thế này có đúng không vậy ?
#include <iostream>
using namespace std;
int main()
{
int t,m,n,ucln;
cout<<"Nhap n="; cin>>n;
cout<<"Nhap m="; cin>>m;
t=m%n;
while (t!=0)
{
t=n%m;
n=m;
m=t;
}
ucln=n;
cout<<ucln;
return 0;
}