Add problem 46 solution
This commit is contained in:
45
problem-46.c
Normal file
45
problem-46.c
Normal file
@@ -0,0 +1,45 @@
|
||||
#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;
|
||||
}
|
||||
Reference in New Issue
Block a user