Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <malloc.h>
- #include <math.h>
- #define N_MAX 1000000
- int prime(int n)
- {
- if (n < 2) return 0;
- int sqrt_n = sqrt(n), i;
- for (i=2; i<=sqrt_n; i++) if (n%i == 0) return 0;
- return 1;
- }
- int main()
- {
- int *iton, *ntoi, count=0, i, j, l;
- long long sum;
- iton = calloc(N_MAX, sizeof(int));
- ntoi = calloc(N_MAX, sizeof(int));
- for (i=0; i<N_MAX; i++)
- {
- if (prime(i))
- {
- iton[count] = i;
- ntoi[i] = count;
- count++;
- }
- }
- for (l=count;; l--)
- {
- sum = 0;
- for (i=0; i<l; i++)
- {
- sum += iton[i];
- }
- for (i=0; i+l <= count; i++)
- {
- if (sum >= N_MAX) break;
- if (ntoi[sum])
- {
- printf("%lld\n", sum);
- return 0;
- }
- sum -= iton[i];
- sum += iton[i+l];
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement