この小さな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;
}
私は数字の多くのプログラムの開発をテストし、それが働いていた...それから私は ...はっきりプライムない大きな数(1231231231231236)を試みたが、:プログラムはそれがあった私に言いました! ?
私には何が欠けていますか?
32ビット整数の制限を確認してください。これはおそらくオーバフローエラーの結果でした – ford
'printf("入力された整数は素数ではありません); 'try' printf( "%dは素数ではありません。\ n"、n); ' – pmg