用c语言编写程序:输入一个正整数,判断其是否为素数
时间: 2024-05-02 21:22:38 浏览: 122
好的,我来回答你的问题。以下是用 C 语言编写的程序,用于判断一个正整数是否为素数:
```c
#include <stdio.h>
int main() {
int n, i, flag = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
if (n <= 1) {
printf("%d 不是素数\n", n);
return 0;
}
for (i = 2; i <= n / 2; ++i) {
if (n % i == 0) {
flag = 1;
break;
}
}
if (flag == 0) {
printf("%d 是素数\n", n);
} else {
printf("%d 不是素数\n", n);
}
return 0;
}
```
上面的程序首先会让用户输入一个正整数,然后判断这个数是否小于或等于 1。如果是,那么它不是素数;否则,程序会从 2 开始遍历到这个数的一半,检查它是否可以被这些数整除。如果除数存在,那么它不是素数,输出不是素数的提示信息;否则,它是素数,输出是素数的信息。希望我的回答能够帮助到你!
相关问题
用C语言编写以下程序:输入一个正整数,判断其是否是两个素数之和,如果是则输出这两个素数,如不能则输出“否”。
以下是用C语言编写的程序:
```c
#include <stdio.h>
int isPrime(int num); // 判断素数的函数声明
int main() {
int n, i, j, flag = 0;
printf("请输入一个正整数:");
scanf("%d", &n);
for (i = 2; i <= n / 2; i++) {
if (isPrime(i)) {
j = n - i;
if (isPrime(j)) {
printf("%d = %d + %d\n", n, i, j);
flag = 1;
}
}
}
if (!flag) {
printf("否\n");
}
return 0;
}
// 判断素数的函数定义
int isPrime(int num) {
int i;
if (num < 2) {
return 0;
}
for (i = 2; i <= num / 2; i++) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
```
程序运行时,会要求用户输入一个正整数,然后程序会依次遍历从2到这个正整数的一半的所有数,判断这些数是否为素数,如果是,则计算出与这个数相加等于这个正整数的另一个素数,并输出这两个素数的和,否则继续遍历,直到找到符合条件的两个素数或者遍历完成。如果没有找到符合条件的两个素数,则输出“否”。
用c语言编写代码:输入两个正整数 m 和 n(1<=m, n<=500),统计并输出 m 和 n 之间的素数的个数以及这些素数的和。要求定义并调用函数 prime(m)判断 m 是否为素数
以下是用C语言编写的代码:
```c
#include <stdio.h>
int prime(int num) {
int i;
for(i = 2; i < num; i++) {
if(num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int m, n, i, count = 0, sum = 0;
printf("请输入两个正整数m和n(1<=m,n<=500):\n");
scanf("%d %d", &m, &n);
if(m > n) {
int temp = m;
m = n;
n = temp;
}
for(i = m; i <= n; i++) {
if(prime(i)) {
count++;
sum += i;
}
}
printf("%d和%d之间的素数个数为:%d,素数的和为:%d\n", m, n, count, sum);
return 0;
}
```
代码中的 `prime` 函数用来判断一个数是否为素数,如果是素数则返回1,否则返回0。主函数中先输入两个正整数 m 和 n,然后用一个循环从 m 到 n 遍历每个数并判断是否为素数,如果是素数则计数器 count 加1,素数和 sum 加上这个素数。最后输出素数个数和素数和。
阅读全文