Files
project-euler/problem-46.c
2019-02-10 23:03:40 -05:00

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;
}