(1)实现isPrime()函数,参数为整数。如果是素数,返回True,否则返回False。 (2)在(1)的基础上,编写一个函数listPrime(),该函数可以接受任意个数数据,返回其中所有的素数。调用函数,从键盘输入任意个数的数据,从中筛选出所有素数,并计算其平方和。要求使用匿名函数求平方。 (3)在(1)的基础上,编写一个函数printPrime(),参数为整数。打印传入整数以内的素数,以空格分隔,10个一行。调用函数,打印200以内的素数。
时间: 2024-03-12 14:47:44 浏览: 102
好的,我会为您逐一解答这三个问题。
(1) 实现isPrime()函数,参数为整数。如果是素数,返回True,否则返回False。
可以使用以下代码实现:
```python
def isPrime(num):
if num <= 1:
return False
for i in range(2, int(num**0.5)+1):
if num % i == 0:
return False
return True
```
这个函数的思路是:如果一个数小于等于1,或者大于1且可以被2到其平方根之间的整数整除,那么它就不是素数,返回False,否则返回True。
(2) 在(1)的基础上,编写一个函数listPrime(),该函数可以接受任意个数数据,返回其中所有的素数。调用函数,从键盘输入任意个数的数据,从中筛选出所有素数,并计算其平方和。要求使用匿名函数求平方。
可以使用以下代码实现:
```python
def listPrime(*nums):
primes = []
for num in nums:
if isPrime(num):
primes.append(num)
square_sum = sum(map(lambda x: x**2, primes))
return primes, square_sum
```
这个函数的思路是:首先定义一个空列表primes用于存放素数,然后遍历传入的任意个数数据,如果该数是素数,则把它加入primes列表。接着使用匿名函数map(lambda x: x**2, primes)对primes中的每个素数求平方,然后使用内置函数sum求和,得到素数的平方和。最后返回primes列表和平方和。
(3) 在(1)的基础上,编写一个函数printPrime(),参数为整数。打印传入整数以内的素数,以空格分隔,10个一行。调用函数,打印200以内的素数。
可以使用以下代码实现:
```python
def printPrime(n):
count = 0
for i in range(2, n+1):
if isPrime(i):
count += 1
print(i, end=' ')
if count % 10 == 0:
print()
print()
```
这个函数的思路是:从2到传入的整数n遍历每个数,如果是素数就打印出来,同时使用计数器count记录已打印的素数个数,当count能被10整除时,换行继续打印。最后要记得加上一个空的print()语句,以确保最后一行也能换行。
阅读全文