sudt2404Super Prime

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2404

一直TLE 参考的qc的代码

先将素数求出 然后把连续的素数和求出 看和是否是素数 标记上

View Code
 1 #include<stdio.h>

 2 int p[100001],o[100001],sum[100001],q[100001];

 3 int main()

 4 {

 5     int i,j, k = 0, m, n,g,f,x;

 6     g = 10;

 7     for(i = 2 ; i <= 100000 ; i++)

 8         if(p[i] == 0)

 9         {

10             for(j = i+i; ;j=j+i)

11             {

12                 if(j>100000)

13                     break;

14                 p[j] = 1;

15             }

16         }

17     k = 1;

18     for(i = 2 ; i <= 100000 ; i++)

19         if(!p[i])

20             o[k++] = i;

21     sum[1] = o[1];

22     for(i = 2 ; i <= k-1 ; i++)

23     {

24         sum[i]=sum[i-1]+o[i];

25         g=sum[i];

26          if(g<100000&&p[g]==0)

27             q[g]=1;

28     }

29     for(i = 3 ; i <= k-1 ; i++)

30         for(j = i-2 ; j >= 1 ; j--)

31         {

32             g = sum[i]-sum[j];

33             if(g>100000)

34                 break;

35             if(g<100000&&p[g]==0)

36                 q[g] = 1;

37         }    

38     scanf("%d", &m);

39     for(x = 1 ; x <= m ; x++)

40     {

41         scanf("%d", &n);

42         printf("Case %d: ",x);

43         if(q[n])

44             printf("yes\n");

45         else

46             printf("no\n");

47     }

48     return 0;

49 }

 

你可能感兴趣的:(super)