“玲珑杯”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 #19

“玲珑杯”ACM比赛 Round #18 A 暴力水 C dp

河工大玲珑杯校赛随笔

“玲珑杯”ACM比赛 Round #23

“玲珑杯”ACM比赛 Round #18 A 计算几何你瞎暴力(瞎暴力)

“玲珑杯”ACM比赛 Round #19题解&源码A,规律,B,二分,C,牛顿迭代法,D,平衡树,E,概率dp