> 时尚打扮 > 编写一个程序判断一个数是否为素数

编写一个程序判断一个数是否为素数

编写一个程序判断一个数是否为素数

以下是一个用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语言中如何优化素数判断程序?

素数判断函数有哪些常见错误?