Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2.  
  3. #define M 1000000000
  4.  
  5. typedef long long lint;
  6.  
  7. using namespace std;
  8.  
  9. vector<lint>prime;
  10.  
  11. bool marked[M];
  12.  
  13. bool isPrime(lint n){
  14. if(n < 2) return false;
  15. if(n == 2) return true;
  16. if(n % 2 == 0) return false;
  17.  
  18. return marked[n] == false;
  19. }
  20.  
  21. void sieve(){
  22. for(lint i = 3; i * i <= M; i += 2){
  23. if(marked[i] == false){
  24. for(lint j = i * i; j <= M; j += i + i){
  25. marked[j] = true;
  26. }
  27. }
  28. }
  29. }
  30.  
  31. vector<lint>getPrime(){
  32. vector<lint>p;
  33. for(lint i = 1; i <= M; i++){
  34. if(isPrime(i)){
  35. p.push_back(i);
  36. }
  37. }
  38. return p;
  39. }
  40.  
  41. bool primeki(lint n){
  42. for(lint i = 0; prime[i] * prime[i] <= n; i++){
  43. if(n % prime[i] == 0) return false;
  44. }
  45. return true;
  46. }
  47.  
  48. int main()
  49. {
  50. sieve();
  51. prime = getPrime();
  52.  
  53. lint n;
  54.  
  55. while(cin>>n){
  56. if(n == 0) break;
  57. lint cnt = 0;
  58. for(lint i = 1; i <= n; i++){
  59. if(primeki(i)){
  60. printf("%lld is prime.\n",i);
  61. cnt ++;
  62. }
  63. }
  64. printf("Total Prime Counts : %lld\n",cnt);
  65. }
  66. return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement