翻译:
在数论中,Euler的函数φ(n)计算直到给定整数n的正整数,它们是n
的相对素数。它可以更正式地定义为1≤k≤n范围内的整数k,
其中最大公约数gcd(n,k)等于1.
例如,φ(9)= 6因为1,2 ,4,5,7和8与9相互作用。作为另一个例子,φ(1)= 1,
因为对于n = 1,1到n范围内的唯一整数本身是1,并且gcd(1,1)= 1.
复合数是一个正整数,可以通过将两个较小的
正整数相乘来形成。等价地,它是一个正整数,至少有一个除数1和它本身的除数。
所以很明显1和所有素数都不是复合数。
在这个问题中,给定整数k,你的任务是找到第k个最小的正整数n,即φ(n)
是一个复合数。
输入输入
的第一行包含一个整数T(1≤T≤100000),表示测试用例的数量。
在每个测试用例中,只有一个整数k(1≤k≤10^ 9)。
输出
对于每个测试用例,打印包含整数的单行,表示答案。
思路 : 打表找规律
#include<stdio.h>
#include<queue>
#include<math.h>
#include<time.h>
#include<string.h>
#include<vector>
#include<algorithm>
#include<iostream>
#include<set>
#include<map>
#include<stack>
#define LL long long
#define mem(a,b) memset(a,b,sizeof(a))
#define lowbit(a) a&(-a)
#define PI acos(-1)
#define shortime(a) std::ios::sync_with_stdio(a);
using namespace std;
const LL inf=16777216;
//long long cmp(node a,node b){ if(a.x==b.x) return a.r>b.r;return a.x>b.x;}
int maxn (int a,int b,int c){return max(max(a,b),max(b,c));}
int gcd (int a,int b){return b==0?a:gcd(b,a%b);}
int main()
{
/* for(int i=1;i<=1000;i++)
{
int num=0;
for(int j=1;j<i;j++)
{
if(gcd(i,j)==1) num++;
}
int j;
for( j=2;j<=sqrt(num);i++)
{
if(num%j==0) break;
}
if(j!=(int )(sqrt(num)+1))
{
printf("%d ",i);
}
}*/
int n;
scanf("%d",&n);
while(n--)
{
int x;
scanf("%d",&x);
if(x==1) printf("5\n");
else printf("%d\n",x+5);
}
return 0;
}