A -- Alarm
Time Limit:1s Memory Limit:128MByte
Submissions:212Solved:74
DESCRIPTION
Given a number sequence [3,7,22,45,116,...][3,7,22,45,116,...]. Please tell me the kk-th number.
INPUT
A number T (T<100)T (T<100) indicates the number of the input cases. Then for each case there only is one integer k (1≤k≤10000)k (1≤k≤10000).
OUTPUT
For each case, ouput the kk-th number of the sequence in one line.
SAMPLE INPUT
2 1 4
SAMPLE OUTPUT
3 45
这道题主要就是找出来规律:素数的平方-n;
#include<stdio.h> #include<string.h> #define G 1100000 int sushu[G+2]; int k=0; long long a[G+2]; void init() { int i,j; memset(sushu,0,sizeof(sushu)); sushu[0]=sushu[1]=1; for(i=1;i<G;i++) { if(sushu[i]==0) { a[++k]=i;//储存素数; } if(sushu[i]==1) continue; for(j=2*i;j<G;j=j+i) sushu[j]=1; } } int main() { int t,n; scanf("%d",&t); init(); while(t--) { scanf("%d",&n); printf("%lld\n",a[n]*a[n]-n); } return 0; }