6是最小的,1到3所有数的倍数。(6 = 1 * 6 = 2 * 3 = 3 * 2)
2520是最小的,1到10的所有数字的倍数。
输入n,输出最小的正整数,他是1到n所有数的倍数。
输入
输入第一行组数T,
接下来T行,每行一个整数n。
(1 <= T <= 20)
(1 <= N <= 20)
输出
对于每组数据,输出一个数,表示1到n的最小公倍数。
输入样例
3
3
10
20
输出样例
6
2520
232792560
解题思路
用最大公约数和最小公倍数
代码
#include <bits/stdc++.h>
#include<iostream>
#include <cmath>
#include <climits>
#include <cstring>
#include <string>
#include <algorithm>
#include <vector>
#include <deque>
#include <list>
#include <utility>
#include<cstring>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <bitset>
#include <iterator>
#define INT_MAX 0x7fffffff
#define INT_MIN 0x80000000
const int MOD = 1E9+7;
const int N = 100000+5;
using namespace std;
long long f(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;
}
int main()
{
std::ios::sync_with_stdio(false);
std::cin.tie(0);
//freopen("input.txt","r",stdin);
// IO
long long int n,m,t;
cin >> n;
while(n--){
cin >> m;
t = 1;
for(int i = 2; i <=m; i++){
t = f(t,i);
}
cout << t << endl;
}
return 0;
}