不使用函数,用简单的python语言,如if语句,输入一个正整数 N(0<N<10000),输出小于 N 的所有完数及小于 N 的完数个数。如果其中不存在完数则只输出0
时间: 2024-09-30 10:03:34 浏览: 28
完数是指一个数等于其所有真因子(除了自身外的因子)之和的数。我们可以编写一个简单的Python程序,通过遍历从1到N,并检查每个数是否是完数来实现这个功能。以下是代码示例:
```python
def is_perfect_number(num):
if num < 2:
return False
divisors_sum = 1
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
divisors_sum += i
if i != (num // i): # 如果i不是最大因子,还需要加上另一个因子
divisors_sum += num // i
return divisors_sum == num
def count_and_print_perfect_numbers(N):
perfect_numbers = []
count = 0
for num in range(1, N):
if is_perfect_number(num):
perfect_numbers.append(num)
count += 1
if len(perfect_numbers) > 0:
print("小于 {} 的完数有:{}".format(N, perfect_numbers))
print("小于 {} 的完数个数为:{}".format(N, count))
else:
print("小于 {} 的完数个数为:0".format(N))
# 用户输入
N = int(input("请输入一个正整数 (0 < N < 10000): "))
count_and_print_perfect_numbers(N)
```
在这个程序中,`is_perfect_number` 函数用于检查一个数是否是完数,`count_and_print_perfect_numbers` 函数则负责找出并打印符合条件的完数及其个数。
阅读全文