該代碼應該檢查用戶輸入的數字是否是質數。我正在執行cygwin終端上的程序,每當我運行它並輸入一個數字時,它就會顯示「Segmentation fault(核心轉儲)」。有什麼建議麼?使用遞歸查找素數
#include <stdio.h>
int prime(int num, int i, int count);
void main()
{
int num, i=2, count=0, result;
printf("Please enter a number: ");
scanf("%d", &num);
result = prime(num, i, count);
if (result != 0)
printf("num is not a prime number");
else
printf("num is a prime number");
}
int prime(int num, int i, int count)
{
if (i < num)
{
if (num%i == 0)
{
count++;
prime(num, i++, count);
}
else
prime(num, i++, count);
}
return count;
}
小提示,如果一個數是2的倍數(即它甚至)你可以跳過它,除了2當然。 2是唯一的素數。 – Skurmedel