Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define IN "ploaie.in"
- #define OUT "ploaie.out"
- #define MAX_N 2000001
- bool sieve[MAX_N];
- int main() {
- FILE *fin, *fout;
- fin = fopen(IN, "r");
- fout = fopen(OUT, "w");
- for (int i = 2; i * i < MAX_N; ++i)
- if (!sieve[i])
- for (int j = i * i; j < MAX_N; j += i)
- sieve[j] = true;
- int n;
- fscanf(fin, "%d", &n);
- int lastPrime = 2, sum, sqSum;
- for (int i = 3; i < MAX_N && n > 0; ++i)
- if (!sieve[i]) {
- sum = lastPrime + i;
- sqSum = sqrt(sum);
- if (sqSum * sqSum == sum) --n;
- lastPrime = i;
- }
- fprintf(fout, "%d\n", sum);
- fclose(fin);
- fclose(fout);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement