c语言输入一个正整数m,判断该数是不是素数。
时间: 2023-05-17 10:06:28 浏览: 159
以下是判断正整数m是否为素数的C语言代码:
```
#include <stdio.h>
int main() {
int m, i, flag = 0;
printf("请输入一个正整数m:");
scanf("%d", &m);
for (i = 2; i <= m / 2; ++i) {
if (m % i == 0) {
flag = 1;
break;
}
}
if (m == 1) {
printf("%d不是素数也不是合数。\n", m);
} else {
if (flag == 0)
printf("%d是素数。\n", m);
else
printf("%d不是素数。\n", m);
}
return 0;
}
```
当输入一个正整数m时,程序会遍历2到m/2之间的所有整数,如果m能被其中任意一个整数整除,则说明m不是素数,否则m是素数。
相关问题
用c语言输入一个正整数,判断它是否为素数。
可以使用以下的算法来判断一个正整数是否为素数:
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为正整数)。如果该数不能被上述数整除,则是素数。
c语言输入一个正整数判断素数
以下是两种C语言判断素数的例子:
1.使用for循环判断
```c
#include <stdio.h>
int main() {
int i, m;
printf("输入一个正整数:");
scanf("%d", &m);
for(i = 2; i <= m/2; i++) {
if(m % i == 0) {
break;
}
}
if(i > m/2 && m != 1) {
printf("%d是素数!", m);
} else {
printf("%d不是素数!", m);
}
return 0;
}
```
2.使用变量判断
```c
#include <stdio.h>
int main() {
int x;
int i;
int isPrime = 1;
printf("请输入一个正整数:");
scanf("%d", &x);
for(i = 2; i < x; i++) {
if(x % i == 0) {
isPrime = 0;
break;
}
}
if(isPrime == 1) {
printf("%d 是素数", x);
} else {
printf("%d 不是素数", x);
}
return 0;
}
```