写一个判别素数的函数,在主函数中输入一个整数,输出是否为素数的信息
时间: 2023-05-31 17:19:25 浏览: 148
实验一_航天班161班_6130116093_黄丹_面向对象程序设计1
### 回答1:
下面是一个判别素数的函数,可以在主函数中输入一个整数,输出是否为素数的信息:
```python
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n ** .5) + 1):
if n % i == :
return False
return True
n = int(input("请输入一个整数:"))
if is_prime(n):
print(n, "是素数")
else:
print(n, "不是素数")
```
函数is_prime(n)的作用是判断一个整数n是否为素数,如果是素数则返回True,否则返回False。具体实现方法是从2到n的平方根范围内遍历所有可能的因子,如果n能被其中任意一个因子整除,则说明n不是素数,返回False;否则说明n是素数,返回True。
在主函数中,我们首先输入一个整数n,然后调用is_prime(n)函数判断n是否为素数。如果是素数,则输出“n是素数”,否则输出“n不是素数”。
### 回答2:
判别素数的函数一般使用质数的性质——只能被1和本身整除。因此可以从2开始向上找能否整除函数输入的数字,如果找到则不是素数。
以下是一个判别素数的函数示例:
```python
def is_prime(n):
if n <= 1: # 小于等于1的数不是素数
return False
elif n == 2: # 2是素数
return True
else:
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False # 能被i整除,不是素数
return True # 无法被除1和自身外的数整除,是素数
```
解释:
1. 首先判断小于等于1的数不是素数,2是素数。
2. 然后从2开始到n的平方根向上取整的范围内循环,判断是否能被整除,若能则不是素数,立即退出函数。
3. 若经过完整循环后没有返回False,即无法被除1和自身外的数整除,则该数是素数,返回True。
在主函数中,我们将输入的数字传入该函数进行判断,并输出是否为素数的信息。Sample Code如下:
```python
num = int(input("请输入一个正整数:")) # 获取输入整数
if is_prime(num): # 判断是否为素数
print("%d是素数" % num)
else:
print("%d不是素数" % num)
```
这样就可以在主函数中根据用户输入的正整数输出相应结果。
### 回答3:
素数是指只能被1和本身整除的正整数,如2、3、5、7、11等,而合数则是可以被其他正整数整除的数。在这里,我们需要编写一个判别素数的函数,并在主函数中调用这个函数,来判断输入的整数是否为素数。
判别素数的函数可以采用试除法,也就是从2开始,试图将该数进行整除操作,如果除数大于该数的平方根,则停止循环,返回true;如果能被整除,则返回false;否则,继续用下一个整数尝试整除。根据小学的乘法分解定理,任何一个合数都必有不等于1的质因数,这个质因数必定小于或等于它的平方根,因此循环的终点可以设为平方根即可。
下面是一个用C++编写的判别素数的函数的代码:
```cpp
bool isPrime(int n){
if(n<=1) return false; //小于2的数都不是素数
int sqrtn = sqrt(n);
for(int i=2;i<=sqrtn;i++){
if(n%i==0) return false; //能被整除则不是素数
}
return true; //除了1和本身之外不能被任何数整除,因此是素数
}
```
在主函数中,我们可以读入一个整数n,然后调用这个函数来判断n是否为素数:
```cpp
int main(){
int n;
cout<<"请输入一个整数n:"<<endl;
cin>>n;
if(isPrime(n)){
cout<<n<<"是素数!"<<endl;
}
else{
cout<<n<<"不是素数。"<<endl;
}
return 0;
}
```
这样就可以根据输入的整数判断出它是否为素数了。
阅读全文