数値が素数かどうかを確認するために、次のコードを作成しました。他にももっと良い方法があることは知っていますが、この方法の何が問題なのか知りたいだけです。数値が素数かどうかは正しく識別していますが、i が素数の場合はセグメンテーション エラーが発生しています。
コード:
#include<stdio.h>
void prime(int);
int main()
{
int a;
printf("Enter number\n");
scanf("%d",&a);
prime(a);
return 0;
}
void prime(int a)
{
static int k=2;
if((a%k==0)&&(a!=k))
printf("Not a prime\n");
else
{
k++;
if(a==k)
printf("Prime\n");
prime(a);
}
}
注: コードを修正しようとすると、else 条件で a==k または k==a-1 を使用しても違いがないことがわかりました。