Advertisement
TLE

10533

TLE
Mar 1st, 2014
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<math.h>
  3.  
  4. int main()
  5. {
  6. int prime,num1,num2,a,c,tcase,sum,i,count,p,j;
  7.  
  8. /********sieve******/
  9. int k, m[31250]={0}, n;
  10. int N = 1000000;
  11. m[0/32] = m[0/32] | 1 << 0%32;
  12. m[1/32] = m[1/32] | 1 << 1%32;
  13. for(k=3; k<=sqrt(N); k = k+2)
  14. {
  15. if( (m[k/32] & 1<<k) == 0 )
  16. {
  17. for(i=k*k; i<=N; i += 2*k )
  18. {
  19. m[i/32] = m[i/32] | 1 << i%32;
  20. }
  21. }
  22. }
  23. for(i=4; i<=N; i += 2 )
  24. {
  25. if( (m[i/32] & 1<<i) == 0 )
  26. {
  27. m[i/32] = m[i/32] | 1 << i%32;
  28. }
  29. }
  30. /********************/
  31.  
  32.  
  33. scanf("%d",&tcase);
  34. while( tcase--)
  35. {
  36. scanf("%d %d",&num1,&num2);
  37. count = 0;
  38. for( prime = num1; prime <= num2; prime=prime+2)
  39. {
  40. if( prime%2 == 0 && prime > 2 && prime != 1 )
  41. {
  42. prime = prime + 1;
  43. }
  44.  
  45. a = 1;
  46. if (prime == 2)
  47. {
  48. count++;
  49. prime = prime - 1;
  50. continue;
  51. }
  52. else if (prime < 1)
  53. {
  54. continue;
  55. }
  56. else if (prime == 1)
  57. {
  58. count++;
  59. continue;
  60. }
  61.  
  62.  
  63. if( (m[prime/32] & 1<<prime) == 0)
  64. {
  65. sum=0;
  66. c = prime;
  67. while ( c%10 != 0)
  68. {
  69. sum = sum + c%10;
  70. c = c/10;
  71. while ( c != 0 && c%10 == 0)
  72. {
  73. c = c/10;
  74. }
  75. }
  76.  
  77. if (sum < 2)
  78. {
  79. continue;
  80. }
  81. if( (m[sum/32] & 1<<sum) == 0)
  82. {
  83. count++;
  84. }
  85. }
  86. }
  87. printf("%d\n",count);
  88. }
  89. return 0;
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement