题目链接:Euler Function
题意
输出第 k k 小的 为合数的 n n 的值,其中 为欧拉函数( ϕ(x) ϕ ( x ) 表示 i∈[1,x] i ∈ [ 1 , x ] 中 gcd(i,x)=1 gcd ( i , x ) = 1 的数字个数)。
输入
第一行为一个整数 T (1≤T≤105) T ( 1 ≤ T ≤ 10 5 ) ,接下去 T T 行每行一个整数 。
输出
对于每一个 k k ,输出第 小的合法的数字。
样例
输入 |
---|
2 1 2 |
输出 |
5 7 |
题解
通过打表找规律可以发现,除了 k=1 k = 1 时答案为 5 5 外,其他答案都为 。
过题代码
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cfloat>
#include <cstring>
#include <string>
#include <vector>
#include <list>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <algorithm>
using namespace std;
#define LL long long
int main() {
#ifdef Dmaxiya
freopen("test.txt", "r", stdin);
#endif // Dmaxiya
ios::sync_with_stdio(false);
int T, k;
scanf("%d", &T);
while(T--) {
scanf("%d", &k);
if(k == 1) {
printf("5\n");
} else {
printf("%d\n", k + 5);
}
}
return 0;
}