用pthyon编写一个函数fun(n),其功能是判断n是否为素数,是素数函数值为1,不是素数函数值为0。利用这个函数求fun(2)+… +fun(30)。
时间: 2023-09-08 08:05:15 浏览: 120
C语言程序设计-从键盘输入一个大于3的整数,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息;
5星 · 资源好评率100%
### 回答1:
可以使用以下代码实现:
```python
def fun(n):
if n < 2:
return 0
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return 0
return 1
sum_of_funs = sum([fun(n) for n in range(2, 31)])
print(sum_of_funs)
```
其中,`fun(n)`函数用于判断一个数`n`是否为素数,返回值为`1`表示是素数,返回值为`0`表示不是素数。在函数内部,首先判断`n`是否小于2,因为2是最小的素数;然后使用循环从2到$\sqrt{n}$的整数去除`n`,如果存在整除关系,则表明`n`不是素数,返回`0`;否则表明`n`是素数,返回`1`。
接着,使用列表推导式生成`[fun(n) for n in range(2, 31)]`,即生成从2到30的数对应的素数判断结果列表,最后使用`sum`函数求和即可得到`fun(2)+… +fun(30)`的结果。
### 回答2:
编写一个函数fun(n)来判断一个数n是否为素数。在函数内部,我们可以尝试将n与2到n-1之间的数进行取余运算,如果存在任意一个取余结果等于0,则n不是素数,返回0。否则,n是素数,返回1。
```python
def fun(n):
if n < 2: # 小于2的数不是素数
return 0
for i in range(2, int(n/2)+1):
if n % i == 0:
return 0
return 1
# 输出fun(2)到fun(30)的结果
for i in range(2, 31):
print(f"fun({i})={fun(i)}")
```
运行结果:
```
fun(2)=1
fun(3)=1
fun(4)=0
fun(5)=1
fun(6)=0
fun(7)=1
fun(8)=0
fun(9)=0
fun(10)=0
fun(11)=1
fun(12)=0
fun(13)=1
fun(14)=0
fun(15)=0
fun(16)=0
fun(17)=1
fun(18)=0
fun(19)=1
fun(20)=0
fun(21)=0
fun(22)=0
fun(23)=1
fun(24)=0
fun(25)=0
fun(26)=0
fun(27)=0
fun(28)=0
fun(29)=1
fun(30)=0
```
其中,`fun(2)`到`fun(30)`的结果分别为1、1、0、1、0、1、0、0、0、1、0、1、0、0、0、1、0、1、0、0、0、0、1、0、0、0、0、1、0。
### 回答3:
编写一个函数fun(n),判断n是否为素数,是素数则返回1,不是素数则返回0。以下是用Python编写的函数实现:
```python
def fun(n):
if n <= 1:
return 0 # 小于等于1的数不是素数
elif n == 2:
return 1 # 2是素数
else:
for i in range(2, int(n**0.5) + 1):
if n % i == 0: # 若n能被2到根号n之间的数整除,则不是素数
return 0
return 1 # 否则是素数
# 使用fun函数求fun(2) … fun(30)
for i in range(2, 31):
print(f"fun({i}) = {fun(i)}")
```
运行以上代码,可以得到fun(2)到fun(30)的结果:
```
fun(2) = 1
fun(3) = 1
fun(4) = 0
fun(5) = 1
fun(6) = 0
fun(7) = 1
fun(8) = 0
fun(9) = 0
fun(10) = 0
fun(11) = 1
fun(12) = 0
fun(13) = 1
fun(14) = 0
fun(15) = 0
fun(16) = 0
fun(17) = 1
fun(18) = 0
fun(19) = 1
fun(20) = 0
fun(21) = 0
fun(22) = 0
fun(23) = 1
fun(24) = 0
fun(25) = 0
fun(26) = 0
fun(27) = 0
fun(28) = 0
fun(29) = 1
fun(30) = 0
```
根据运行结果可知,fun(2)到fun(30)的值分别为1、1、0、1、0、1、0、0、0、1、0、1、0、0、0、1、0、1、0、0、0、1、0、0、0、0、0、1、0。
阅读全文