完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。
它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
输入一个数字n
输出不超过n的完全数的个数
例:输入:1000 输出:3
import sys
def is_perfect_number(num):factors_sum = sum(i for i in range(1, num) if num % i == 0)return factors_sum == numdef find_perfect_numbers_in_range(start, end):perfect_numbers = [num for num in range(start, end + 1) if is_perfect_number(num)]return perfect_numbersfor line in sys.stdin:a = line.split()b = int(a[0])per_num = find_perfect_numbers_in_range(1,b)print(len(per_num))