用C语言写从键盘中输入一个大与0的整数,判断该数是素数还是合数
时间: 2024-05-09 08:18:46 浏览: 97
```
#include <stdio.h>
int main() {
int num, i, flag = 0;
printf("请输入一个大于0的整数:");
scanf("%d", &num);
for (i = 2; i <= num / 2; i++) {
if (num % i == 0) {
flag = 1;
break;
}
}
if (flag == 0)
printf("%d是素数\n", num);
else
printf("%d是合数\n", num);
return 0;
}
```
解释:
1. 首先从键盘中输入一个大于0的整数,保存在变量`num`中。
2. 利用`for`循环从2开始到`num/2`结束,依次判断`num`能否被2到`num/2`的整数整除。
3. 如果能被整除则说明`num`是合数,将`flag`变量设为1,跳出循环;否则说明`num`是素数,`flag`变量保持为0。
4. 根据`flag`变量的值输出相应的结果。
注:素数指只能被1和自身整除的正整数,2是最小的素数。
相关问题
从键盘中输入一个大与0的整数,判断该数是素数还是合数
素数是指只能被1和自身整除的大于1的整数,否则就是合数。以下是Python代码实现:
```python
num = int(input("请输入一个大于0的整数:"))
if num <= 1:
print("输入错误!")
else:
for i in range(2, num):
if num % i == 0:
print(num, "是合数")
break
else:
print(num, "是素数")
```
解释一下代码:
1. 首先从键盘中输入一个整数num。
2. 判断输入的是否大于1,如果小于等于1就是输入错误。
3. 从2开始到num-1,用循环依次除以每个数i。
4. 如果num能被i整除,就说明num是合数,直接输出结果。
5. 如果循环执行完毕都没有找到能整除num的数,那么num就是素数,输出结果。
注意:在第3步中,循环范围可以缩小到2到num的平方根,这样可以减少循环次数,提高效率。
用python完成:输入一个整数,判断该数字是质数还是合数,并输出(例如:9973这个是质数!)
当然可以!请看下面的代码示例:
```python
num = int(input("请输入一个整数:"))
if num < 2:
print(num, "既不是质数,也不是合数")
else:
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
print(num, "是质数!")
else:
print(num, "是合数!")
```
希望能帮到你!
阅读全文