ProjectEuler 5
6是最小的,1到3所有数的倍数。(6 = 1 * 6 = 2 * 3 = 3 * 2)
2520是最小的,1到10的所有数字的倍数。
输入n,输出最小的正整数,他是1到n所有数的倍数。
Input
输入第一行组数T, 接下来T行,每行一个整数n。 (1 <= T <= 20) (1 <= N <= 20)
Output
对于每组数据,输出一个数,表示1到n的最小公倍数。
Sample Input
3
3
10
20
Sample Output
6
2520
232792560
AC代码:最小公倍数知识点戳💨最大公因数和最小公倍数求解
#include<iostream>
using namespace std;
long long fun(long long a,long long b);//不用long long 会Wrong Answer
int main()
{
int n,m;
long long t;//不用long long 会Wrong Answer
cin>>n;
while(n--)
{
cin>>m;
t=1;
for(int i=2;i<=m;i++)
t=fun(t,i);
cout<<t<<endl;
}
return 0;
}
long long fun(long long a,long long b)//辗转相除法求最大公因数
{
long long t,temp=a*b;
while(b!=0)
{
t=a%b;
a=b;
b=t;
}
return temp/a;//最小公倍数等于两数乘积除以最大公因数
}
永远相信美好🎈