problem 7

今日はもうやらないつもりだったのだけど,ちらっと見たらまた素数だったので problem 3 のコードを流用した.

#include <stdio.h>
#include <stdlib.h>

#define SIZE 10001

int main()
{
    unsigned long long int *primes = (long long int *)malloc(sizeof(long long int)*SIZE);
    int n=5,i=2,j;
    primes[0]=2;
    primes[1]=3;
    for(;i<=10001;n+=2) {
        long long int f=1;
        for(j=1;j<i&&f;j++) {
            f = 1;
            f*=n%primes[j];
        }
        if(f) primes[i++]=n;
    }
    printf("%lld\n",primes[10000]);
    free(primes);
    return 0;
}

追記: problem 6 かと思ったら 7 だったので訂正.