本题要求编写程序,判断一个给定的整数是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。 输入格式: 输入在一行中给出一个需要判断的整数 m(−2 31 ≤m≤2 31 −1)。 输出格式: 如果m是素数,则在一行中输出yes,否则输出no。如果输入了非正整数,也要输出no。
时间: 2023-05-31 20:21:01 浏览: 119
C语言程序设计-编写程序。判断整数m是否是素数
5星 · 资源好评率100%
### 回答1:
以下是Python的代码实现:
m = int(input()) # 输入需要判断的整数
if m <= 1: # 如果输入了非正整数,输出no
print("no")
else:
flag = True # 标记是否为素数
for i in range(2, int(m ** 0.5) + 1): # 判断m是否能被2到根号m之间的整数整除
if m % i == 0:
flag = False
break
if flag: # 如果是素数,输出yes
print("yes")
else: # 否则输出no
print("no")
### 回答2:
本题是判断给定整数是否为素数,需要编写一个程序实现。首先,我们需要明确素数的定义:只能被1和自身整除的正整数,1不是素数,2是素数。
因此,我们可以使用循环来判断指定整数是否为素数。具体实现如下:
1.读入需要判断素数的整数m。
2.判断m是否小于2或为负数,如果是,输出no。
3.从2到sqrt(m)遍历整数i,如果m能够被i整除,说明不是素数,输出no。
4.如果遍历完所有可能的因数,仍然没有找到任何一个能够整除m的数,则m是素数,输出yes。
代码如下:
```python
import math
m = int(input()) # 读入需要判断素数的整数m
if m < 2: # 判断m是否小于2或为负数
print("no")
else:
for i in range(2, int(math.sqrt(m))+1): # 从2到sqrt(m)遍历整数i
if m % i == 0: # 如果m能够被i整除,说明不是素数
print("no")
break
else: # 如果遍历完所有可能的因数,仍然没有找到任何一个能够整除m的数,则m是素数
print("yes")
```
上述代码中,使用了math库中的sqrt函数,该函数用于计算平方根。由于可能存在小数,需要使用int函数将其转为整数。
最后,需要注意的是,输入输出格式要求按题目要求进行。
### 回答3:
题目分析:
首先,判断一个数是否为素数,需要从2到该数的平方根去判断是否有因子。如果存在因子,则该数不是素数。
解题思路:
通过循环从2到m的平方根去判断是否存在因子,如果存在就说明该数不是素数,输出no;否则输出yes。
代码实现:
输入一个数m,并采用int型存储,因为题目所给范围为-2^31≤m≤2^31-1。
如果m小于等于1,输出no。
否则,从2到m的平方根遍历,如果存在能够被m整除的数,则说明m不是素数,输出no。
如果遍历都没有找到因子,说明m是素数,输出yes。
参考代码:
#include <stdio.h>
#include <math.h>
int main()
{
int m; //待判断的数
scanf("%d", &m);
if(m <= 1)
printf("no");
else
{
int i;
int k = sqrt(m); //m的平方根
for(i = 2; i <= k; i++)
{
if(m % i == 0) //如果存在因子,则说明不是素数
{
printf("no");
return 0;
}
}
printf("yes"); //如果遍历都没有找到因子,说明是素数
}
return 0;
}
阅读全文