46 lines
556 B
C
46 lines
556 B
C
#include <stdio.h>
|
|
#include "primes.h"
|
|
|
|
int next_prime(int num)
|
|
{
|
|
num++;
|
|
while (1)
|
|
if (is_prime(num)) {
|
|
return num;
|
|
} else {
|
|
num++;
|
|
}
|
|
}
|
|
|
|
int check(int num)
|
|
{
|
|
int i;
|
|
int prime = 2;
|
|
|
|
while (prime < num) {
|
|
for (i=1; i<(num-prime+1); i++)
|
|
if (num == prime+2*(i*i))
|
|
return 1;
|
|
prime = next_prime(prime);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
int main(int argc, char** argv)
|
|
{
|
|
int i = 9; /* First odd composite */
|
|
while (1) {
|
|
if (!(check(i)))
|
|
break;
|
|
|
|
do {
|
|
i += 2;
|
|
} while (is_prime(i));
|
|
}
|
|
|
|
printf("The solution is %d\n", i);
|
|
return 0;
|
|
}
|