使用c语言编写:输入一个正整数num,判断num是否为素数。若为素数则输出1,否则输出0。(提示:素数是指只可以被1和其本身整除的正数(1除外)) 输入10输出0 输入7输出1
时间: 2024-02-24 22:56:38 浏览: 51
好的,这是一个简单的算法题,以下是C语言的代码实现:
```c
#include <stdio.h>
int main() {
int num, i, isPrime = 1;
printf("请输入一个正整数:");
scanf("%d", &num);
for (i = 2; i < num; i++) {
if (num % i == 0) {
isPrime = 0;
break;
}
}
if (isPrime == 1) {
printf("%d是素数\n", num);
} else {
printf("%d不是素数\n", num);
}
return 0;
}
```
首先读入一个正整数,然后用for循环从2开始到num-1,判断num是否能被i整除,如果是,则说明num不是素数,将isPrime置为0,直接跳出循环。如果for循环完之后isPrime仍为1,则说明num是素数。最后根据isPrime的值输出结果即可。
相关问题
用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语言程序:输入n个正整数,输出其中的素数。
好的,以下是一个从输入n个正整数中筛选出素数的C语言程序:
```c
#include <stdio.h>
int main() {
int n, i, j, num[100], flag;
printf("请输入要输入的正整数个数:");
scanf("%d", &n);
printf("请输入%d个正整数:", n);
for (i = 0; i < n; i++) {
scanf("%d", &num[i]);
}
printf("筛选出的素数有:");
for (i = 0; i < n; i++) {
flag = 0;
for (j = 2; j <= num[i] / 2; j++) {
if (num[i] % j == 0) {
flag = 1;
break;
}
}
if (num[i] == 1) {
continue;
}
else {
if (flag == 0) {
printf("%d ", num[i]);
}
}
}
printf("\n");
return 0;
}
```
程序流程如下:
1. 提示用户输入要输入的正整数的个数。
2. 通过scanf函数读取用户输入的正整数个数。
3. 提示用户输入n个正整数,并通过循环读取到num数组中。
4. 循环遍历num数组中的每一个数,判断是否是素数,如果是素数则输出该数。
5. 如果该数是1,则跳过该数的判断。
6. 输出筛选出的素数。
希望能帮到您!
阅读全文