输出200以内的所有素数(要求每行打印5个,素数间空格隔开),并打印出素数的总个数。输出200以内的最大完数。
def find_prime_numbers(n):
prime_list = []
is_prime = [True] * (n + 1)
for i in range(2, n + 1):
if is_prime[i]:
prime_list.append(i)
for j in range(i * i, n + 1, i):
is_prime[j] = False
return prime_list
prime_list = find_prime_numbers(200)
count = len(prime_list)
print("200以内的素数有%d个:" % count)
for i in range(count):
print(prime_list[i], end=' ')
if (i + 1) % 5 == 0:
print()
print()
def find_perfect_number(n):
perfect_list = []
for i in range(2, n + 1):
factors = [1] # 1一定是i的因子
for j in range(2, int(i ** 0.5) + 1):
if i % j == 0:
factors.append(j)
if j != i // j:
factors.append(i // j)
if sum(factors) == i:
perfect_list.append(i)
return perfect_list
perfect_list = find_perfect_number(200)
if len(perfect_list) > 0:
max_perfect = max(perfect_list)
print("200以内的最大完数是%d" % max_perfect)
else:
print("200以内不存在完数")
该回答引用chatgpt:
import math
# 判断一个数是否为素数
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
# 输出200以内的所有素数
count = 0
for i in range(2, 201):
if is_prime(i):
count += 1
print(i, end=' ')
if count % 5 == 0:
print()
print('\n素数的总个数为:', count)
# 输出200以内的最大完数
for i in range(2, 201):
divisors = [1]
for j in range(2, int(math.sqrt(i)) + 1):
if i % j == 0:
divisors.append(j)
if j != i // j:
divisors.append(i // j)
if sum(divisors) == i:
print(i, '是完数')
break
print("200以内的素数为:")
for num in range(2, 201):
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num, end="\t")
count += 1
if count % 5 == 0:
print()
print("\n素数个数为:", count)
```print("200以内的完数为:")
for num in range(2, 201):
factor_sum = 0
for i in range(1, num):
if (num % i) == 0:
factor_sum += i
if factor_sum == num:
print(num)
```
curl -d "s=他点头表示同意我的意见。&f=xml&t=all" http://127.0.0.1:8080/ltp
测试成功后按照文档使用即可