素数程序通常通过试除法来判断一个数是否为素数。试除法的基本思路是:对于要判断的数n,从2开始到n的平方根之间的所有整数m,依次判断n是否能被m整除。如果能被整除,则n不是素数;如果都不能整除,则n是素数。
```c
include include include // 函数声明 bool is_prime(int n); int main() { int num; printf("请输入一个整数: "); scanf("%d", &num); if (is_prime(num)) { printf("%d 是素数\n", num); } else { printf("%d 不是素数\n", num); } return 0; } // 函数定义: 判断一个整数是否为素数 bool is_prime(int n) { if (n <= 1) { return false; // 1及以下的数不是素数 } for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) { return false; // 如果n能被i整除,说明n不是素数 } } return true; // 如果循环结束都没有找到能整除n的因子,说明n是素数 } ``` 代码解析: 使用`scanf`函数读取用户输入的整数。 `is_prime`函数用于判断一个数是否为素数。 如果输入的数`n`小于等于1,直接返回`false`。 使用一个`for`循环从2到`sqrt(n)`遍历所有可能的因子。 如果在循环中找到任何一个数能整除`n`,则返回`false`。 如果循环结束都没有找到能整除`n`的数,则返回`true`。 根据`is_prime`函数的返回值,输出相应的结果。 优化建议: 实际上,只需要检查到`sqrt(n)`即可,因为如果`n`有大于`sqrt(n)`的因子,那么必定有一个小于等于`sqrt(n)`的因子与之对应。 可以进一步优化,只检查从2到`n`的平方根之间的所有奇数,因为偶数除了2以外都不可能是素数。 通过以上步骤和代码,你可以有效地判断一个数是否为素数。输入部分
判断素数部分
输出部分