Advertisement
Farjana_akter

Untitled

Feb 12th, 2020
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int isprime[6000000+6],psize=0;
  5. bool mark[6000000+6];
  6.  
  7.  
  8. int arr[6000000+5];
  9.  
  10. void sieve()
  11. {
  12. int i,j,k;
  13. mark[0]=true;
  14. mark[1]=true;
  15. for(i=0;i*i<=6000000;i++)
  16. {
  17. if(mark[i]==false)
  18. {
  19. for(j=i*i;j<=6000000;j+=i)
  20. {
  21. mark[j]=true;
  22. }
  23. }
  24. }
  25. psize=0;
  26. for(i=2;i<=6000000;i++)
  27. {
  28. if(mark[i]==false)
  29. isprime[psize++]=i;
  30. }
  31. }
  32.  
  33.  
  34.  
  35. int prime_fact(int n)
  36. {
  37. int i,j,k,sum=0,cnt=0;
  38. for(i=0;isprime[i]*isprime[i]<=n;i++)
  39. {
  40. if(n%isprime[i]==0)
  41. {
  42. cnt=0;
  43. while(n%isprime[i]==0)
  44. {
  45. cnt++;
  46. n/=isprime[i];
  47. }
  48. sum+=isprime[i];
  49. }
  50. }
  51. if(n!=1)
  52. sum+=n;
  53. if(mark[sum]==false)
  54. return 1;
  55. else
  56. return 0;
  57. }
  58.  
  59.  
  60. int main()
  61. {
  62. sieve();
  63. int i ,j,k,a,b,c,d,e;
  64.  
  65. arr[1]=1;
  66. for(i=2;i<=5000006;i++)
  67. {
  68. arr[i]=arr[i-1]+prime_fact(i);
  69. }
  70. while(cin>>a && a)
  71. {
  72. cin>>b;
  73. cout<<arr[b]-arr[a-1]<<endl;
  74. }
  75. return 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement