這個小小的C腳本檢查一個數字是否是一個主數據......不幸的是,它並沒有完全奏效。我知道腳本的低效率(例如sqrt
優化),這些都不是問題。質數檢查爲什麼會檢查大數量的錯誤結果?
#include <stdio.h>
int main() {
int n, m;
printf("Enter an integer, that will be checked:\n"); // Set 'n' from commandline
scanf("%d", &n); // Set 'n' from commandline
//n = 5; // To specify 'n' inside code.
for (m = n-1; m >= 1; m--) {
if (m == 1) {
printf("The entered integer IS a prime.\n");
break;
}
if (n % m == 0) {
printf("The entered integer IS NOT a prime.\n");
break;
}
}
return 0;
}
我測試了PROGRAMM有很多數字和它的工作...然後我嘗試一個更大的編號(1231231231231236),這顯然不是素... 但是:程序告訴我這是! ?
我錯過了什麼......?
檢查32位整數的限制。這可能是溢出錯誤的結果 – ford 2012-01-09 16:44:13
而不是'printf(「輸入的整數不是素數。\ n」);'try'printf(「%d不是素數。\ n」,n);' – pmg 2017-11-30 14:36:43