编写一个程序判断一个数是否为素数
以下是一个用C语言编写的程序,用于判断输入的数是否为素数:
```c#include #include int SuShu(int num) { int n_sqrt = sqrt(num); for (int i = 2; i <= n_sqrt; i++) { if (num % i == 0) { return 0; // 非素数 } } return 1; // 素数}int main() { int n; printf(\"请输入一个正整数: \"); scanf(\"%d\", &n); if (n <= 1) { printf(\"0\\n\"); // 1及以下的数不是素数 } else { int result = SuShu(n); if (result == 1) { printf(\"1\\n%d\", n); // 若N为素数,则直接打印N值 } else { printf(\"0\\n\"); // 若N非素数,则打印0 } } return 0;}```
代码说明:
1. SuShu函数 :
接受一个整数`num`作为参数。
计算`num`的平方根`n_sqrt`。
从2到`n_sqrt`循环,检查`num`是否能被`i`整除。
如果能被整除,返回0(非素数)。
如果循环结束都没有找到能整除的数,返回1(素数)。
2. main函数 :
提示用户输入一个正整数。
读取用户输入的整数`n`。
如果`n`小于等于1,输出0(1及以下的数不是素数)。
否则,调用`SuShu`函数判断`n`是否为素数,并根据结果输出1或0。
优化建议:
实际上,只需要检查从2到`sqrt(n)`之间的数即可,因为如果`n`有大于`sqrt(n)`的因数,那么它一定有小于`sqrt(n)`的因数。
可以进一步优化,只检查从2到`n/2`之间的数,因为偶数除了2以外都不可能是素数。
希望这个程序对你有所帮助!如果有任何问题或需要进一步的优化,请随时告诉我。
其他小伙伴的相似问题:
如何用Python判断一个数是否为素数?
C语言中如何优化素数判断程序?
素数判断函数有哪些常见错误?