私は C の初心者で、エラトステネスのふるいアルゴリズムを C コードに変換する必要があります。与えられたアルゴリズムは次のとおりです。 *START 要素のすべての値が TRUE になるように、配列 is_prime を初期化します。is_prime[1] の値を FALSE に設定します (1 は素数ではないため)。 I=2 の場合、sqrt(N) まで実行: I*I から N まで、I のすべての倍数を FALSE に設定します。値 TRUE を保持する is_prime のインデックス。終わり*
これまでの私のコードは次のとおりです。
#include <stdio.h>
#include <math.h>
#define N 300
void displayPrime (bool checkPrime);
bool checkPrime (int num);
main()
{
bool is_prime[N+1];
displayPrime(is_prime);
getchar();
}
void displayPrime (bool check)
{
int I;
for(I=1; I<N; I++)
{
checkPrime(is_prime[I]);
if(is_prime[I]==TRUE)
{
printf("%d\n", I);
}
else if(is_prime[I]==FALSE)
{
printf("");
}
}
}
bool checkPrime (int num)
{
int num;
is_prime[1]=FALSE;
for(I=2; I<=sqrt(N); I++)
{
for(num=I; num<=N/num; num=num*I)
{
is_prime[num]=FALSE;
}
return(is_prime[I]);
}
}
プログラムがコンパイルされません。プログラムの何が問題なのか疑問に思っています。ありがとうございました