1)编写一个函数 isprime(n),用于判别一个正整数 n 是否为素数,若是返回 True,否则返回 False。 (2)编写一个primeSum(m)函数,将[1,m](包含1和m)之间的所有素数累加求和,并将累加和打印输出。 (3)编写函数factor(n),参数为一个大于1的正整数,输出该正整数n的所有因数,中间以空格隔开。(因数的定义:假如a*b=c(a、b、c都是整数),那么我们称a和b就是c的因数) (4)一个自然数如果恰好等于它的因数之和,这个数就称为“完数”,例如6的因数是1,2,3,而6=1+2+3,则6是完数。编写函数complete(),输出1到10000以内的所有的完数。要求每行最多输出10个数字,如果超出10个则换行。
时间: 2024-03-09 14:51:10 浏览: 64
以下是Python代码实现:
1. 判断一个正整数是否为素数
```python
def isprime(n):
if n < 2:
return False
for i in range(2, int(n**0.5)+1):
if n % i == 0:
return False
return True
```
2. 求1到m之间所有素数的累加和
```python
def primeSum(m):
sum = 0
for i in range(2, m+1):
if isprime(i):
sum += i
print(sum)
```
3. 输出一个正整数的所有因数
```python
def factor(n):
factors = []
for i in range(1, int(n**0.5)+1):
if n % i == 0:
factors.append(i)
if i != n // i:
factors.append(n // i)
factors.sort()
for factor in factors:
print(factor, end=' ')
```
4. 输出1到10000之间所有的完数
```python
def complete():
for i in range(2, 10001):
factors = []
for j in range(1, int(i**0.5)+1):
if i % j == 0:
factors.append(j)
if j != i // j:
factors.append(i // j)
if sum(factors) - i == i:
print(i, end=' ')
if i % 10 == 0:
print()
print()
```
可以调用以上函数进行测试,例如:
```python
isprime(7) # True
primeSum(20) # 77
factor(24) # 1 2 3 4 6 8 12 24
complete() # 6 28 496 8128
```
阅读全文