用c语言输入一个正整数,判断它是否为素数。
时间: 2024-05-12 18:13:19 浏览: 112
可以使用以下的算法来判断一个正整数是否为素数:
1. 如果该数小于等于1,则不是素数。
2. 如果该数是2或3,则是素数。
3. 如果该数能够被2整除,则不是素数。
4. 如果该数能够被3整除,则不是素数。
5. 对于大于3的数,如果它能够被2或3整除,则一定不是素数。因此,我们可以从5开始,每次判断该数是否能够被6k+1或6k-1整除(其中k为正整数)。
以下是使用C语言实现判断一个正整数是否为素数的代码:
```c
#include <stdio.h>
int main() {
int num, i;
printf("请输入一个正整数:");
scanf("%d", &num);
if (num <= 1) {
printf("%d不是素数。\n", num);
return 0;
}
if (num == 2 || num == 3) {
printf("%d是素数。\n", num);
return 0;
}
if (num % 2 == 0 || num % 3 == 0) {
printf("%d不是素数。\n", num);
return 0;
}
for (i = 5; i * i <= num; i += 6) {
if (num % i == 0 || num % (i + 2) == 0) {
printf("%d不是素数。\n", num);
return 0;
}
}
printf("%d是素数。\n", num);
return 0;
}
```
在本代码中,我们首先通过`scanf`函数输入一个正整数,然后按照上述算法进行判断。如果该数小于等于1,则不是素数;如果该数是2或3,则是素数;如果该数能够被2或3整除,则不是素数;对于大于3的数,我们从5开始,每次判断该数是否能够被6k+1或6k-1整除(其中k为正整数)。如果该数不能被上述数整除,则是素数。
阅读全文