用C语言写程序,用if语句,编程输入一个整数判断是否为素数
时间: 2023-05-30 22:01:50 浏览: 136
```
#include <stdio.h>
int main() {
int num, i, flag = 0; // flag用来标记是否是素数
printf("请输入一个整数:");
scanf("%d", &num);
for(i = 2; i <= num / 2; ++i) {
if(num % i == 0) { // 如果能被整除,不是素数
flag = 1;
break;
}
}
if (num == 1) { // 1不是素数
printf("%d不是素数。\n", num);
}
else {
if (flag == 0)
printf("%d是素数。\n", num);
else
printf("%d不是素数。\n", num);
}
return 0;
}
```
相关问题
编写程序,判断从键盘输入的正整数n是否是素数,判断素数的语句写在子函数中。用C语言编写程序
在C语言中,我们可以创建一个函数来检查一个数字是否为素数。首先,我们需要编写一个用于检测素数的辅助函数,然后再在主函数中接收用户输入并调用该函数。以下是相应的代码:
```c
#include <stdio.h>
// 辅助函数,用于检查一个数是否为素数
int isPrime(int num) {
if (num <= 1) { // 0和1不是素数
return 0;
} else if (num == 2) { // 2是最小的素数
return 1;
} else if (num % 2 == 0) { // 偶数除了2之外都不是素数
return 0;
}
// 检查从3到sqrt(num)的所有奇数因子
for (int i = 3; i * i <= num; i += 2) {
if (num % i == 0) {
return 0; // 如果找到因子,那么num不是素数
}
}
return 1; // 如果没找到因子,num就是素数
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
// 判断输入的数是否为素数并输出结果
if (isPrime(n)) {
printf("%d是素数。\n", n);
} else {
printf("%d不是素数。\n", n);
}
return 0;
}
```
在这个程序中,`isPrime` 函数递归地排除了所有小于等于其平方根的偶数因子,因为如果一个数不是质数,必定有一个小于等于它的平方根的因子。主函数则从键盘读取输入,然后调用 `isPrime` 函数判断该数是否为素数。
用C语言实现下列语句:编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。
以下是用C语言实现判断一个整数是否为素数的代码,其中自定义了一个 `isPrime` 函数:
```c
#include <stdio.h>
// 判断一个数是否为素数的函数
int isPrime(int n) {
int i;
if (n < 2) { // 小于2的数不是素数
return 0;
}
for (i = 2; i * i <= n; i++) {
if (n % i == 0) { // 能整除的数不是素数
return 0;
}
}
return 1;
}
int main() {
int n;
printf("请输入一个整数:\n");
scanf("%d", &n);
if (isPrime(n)) {
printf("%d是素数\n", n);
} else {
printf("%d不是素数\n", n);
}
return 0;
}
```
代码思路:
1. 定义一个整型函数 `isPrime`,传入一个整数 `n`,返回是否为素数的结果,是素数返回1,不是素数返回0;
2. 在 `isPrime` 函数中,判断 `n` 是否小于2,如果小于2,则直接返回0,因为小于2的数都不是素数;
3. 使用 `for` 循环遍历 `2` 到 `sqrt(n)` 之间的每个数 `i`,如果 `n` 能被 `i` 整除,则说明 `n` 不是素数,直接返回0;
4. 如果 `for` 循环结束后都没有返回0,说明 `n` 是素数,返回1;
5. 在 `main` 函数中,使用 `scanf` 函数读取一个整数 `n`;
6. 调用 `isPrime` 函数判断 `n` 是否为素数;
7. 使用 `if` 语句输出判断结果。
阅读全文