“玲珑杯”ACM 热身赛 # 0.5 A -- Alarm 素数打表找规律
Posted 唐唐123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了“玲珑杯”ACM 热身赛 # 0.5 A -- Alarm 素数打表找规律相关的知识,希望对你有一定的参考价值。
A -- Alarm
Time Limit:1s Memory Limit:128MByte
【思路】找规律:the k-th = 第k个素数^2 - k;
3=2^2-1 7=3^2-2 22=5^2-3 45=7^2-4......
AC代码:
#include<cstdio> #define H 1000005 long long s[H]={1,1}; long long x[H]; void sushu() { long long i, j; for(i = 2; i <= H; i++) { if(s[i] == 1) continue; for(j = i*2; j <= H; j=j+i) s[j] = 1; } } void fun() { long long i, j = 1; for(i = 2; i <= H; i++) { if(s[i] == 0) { x[j] = i*i-j; j++; } } } int main() { sushu(); fun(); long long t, k; scanf("%lld", &t); while(t--) { scanf("%lld", &k); printf("%lld\\n", x[k]); } return 0; }
以上是关于“玲珑杯”ACM 热身赛 # 0.5 A -- Alarm 素数打表找规律的主要内容,如果未能解决你的问题,请参考以下文章
“玲珑杯”ACM比赛 Round #18 A 暴力水 C dp