Advertisement
GeeckoDev

pe50

Oct 24th, 2011
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.98 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <malloc.h>
  3. #include <math.h>
  4.  
  5. #define N_MAX 1000000
  6.  
  7. int prime(int n)
  8. {
  9.     if (n < 2) return 0;
  10.     int sqrt_n = sqrt(n), i;
  11.     for (i=2; i<=sqrt_n; i++) if (n%i == 0) return 0;
  12.     return 1;
  13. }
  14.  
  15.  
  16. int main()
  17. {
  18.     int *iton, *ntoi, count=0, i, j, l;
  19.     long long sum;
  20.     iton = calloc(N_MAX, sizeof(int));
  21.     ntoi = calloc(N_MAX, sizeof(int));
  22.  
  23.     for (i=0; i<N_MAX; i++)
  24.     {
  25.         if (prime(i))
  26.         {
  27.             iton[count] = i;
  28.             ntoi[i] = count;
  29.             count++;
  30.         }
  31.     }
  32.  
  33.     for (l=count;; l--)
  34.     {
  35.         sum = 0;
  36.         for (i=0; i<l; i++)
  37.         {
  38.             sum += iton[i];
  39.         }
  40.  
  41.         for (i=0; i+l <= count; i++)
  42.         {
  43.             if (sum >= N_MAX) break;
  44.  
  45.             if (ntoi[sum])
  46.             {
  47.                 printf("%lld\n", sum);
  48.                 return 0;
  49.             }
  50.  
  51.             sum -= iton[i];
  52.             sum += iton[i+l];
  53.         }
  54.     }
  55. }
  56.  
  57.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement