最小的,连续2个数字,都恰好有2个不同的质因数的数是
14=2×714=2×7
15=3×515=3×5
最小的,连续3个数字,都恰好有3个不同的质因数的数是
644=22×7×23644=22×7×23
645=3×5×43645=3×5×43
646=2×17×19646=2×17×19
输入n,问最小的,连续n个数字,都恰好有n个不同的质因数的数是什么?
输出这连续n个数字中的第一个数字即可。
输入格式
输入第一行组数T, 接下来T行,每行一个整数n。 (1 <= T <= 3) (2 <= n <= 4)
输出格式
对于每组数据,输出一个数,表示答案。
输入样例
2
2
3
输出样例
14
644
51nod标程:
n<=4n<=4 ,因此可以从小到大枚举 ii ,记录每个数的质因子数量。并找到符合条件的数字。
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200020;
int v[MAXN];
int cnt(int x) {
int ans = 0;
for (int i = 2; i * i <= x; i++) {
if (x % i == 0)
ans++;
while(x % i== 0)
x /= i;
}
if(x > 1)
ans++;
return ans;
}
int getAns(int n) {
int cur = n;
for(int i = 2; i < MAXN; i++) {
cur = (v[i] == n) ? cur - 1 : n;
if(cur == 0)
return i - n + 1;
}
return 0;
}
int main()
{
int t, n;
cin >> t;
for(int i = 2; i < MAXN; i++)
v[i] = cnt(i);
for(int i = 0; i < t; i++) {
cin >> n;
cout << getAns(n) << endl;
}
return 0;
}