Guest User

Untitled

a guest
Jun 22nd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.93 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. // The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.
  5.  
  6. // Find the sum of all the primes below two million.
  7.  
  8. int main() {
  9.     long long sum = 0;
  10.     int primesCount = 0;
  11.     int primes[10000] = {0};
  12.    
  13.     int i = 2;
  14.    
  15.     while(i < 2000000) {
  16.         if(isPrime(i, primesCount, primes) == 1) {
  17.             if(primesCount < 10000) {
  18.                 primes[primesCount] = i;   
  19.             }
  20.             sum += i;
  21.             primesCount++;
  22.         }
  23.  
  24.         if(i == 2) {
  25.             i = 3;
  26.         } else {
  27.             i = i + 2;
  28.         }
  29.     }
  30.  
  31.     printf("%d primes sum: '%lld'\n\n", primesCount, sum);
  32.  
  33.     return 1;
  34. }
  35.  
  36. int isPrime(int number, int primesCount, int *primes) {
  37.     int i;
  38.     for(i = 0; i < primesCount; i++) {
  39.         if(primes[i] != 0) {
  40.             if(number % primes[i] == 0  && number != primes[i]) {
  41.                 return 0;
  42.             }
  43.         } else {
  44.             break;
  45.         }
  46.     }
  47.  
  48.     for(i = 3; i < (int)sqrt(number) + 1; i = i + 2) {
  49.         if(number % i == 0 && i != number) {
  50.             return 0;
  51.         }
  52.     }
  53.  
  54.     return 1;
  55. };
Add Comment
Please, Sign In to add comment