以下是引用他不是恶魔在2022-10-18 10:57:44的发言:
判断一个数是否为完数。例如:6=3+2+1,6等于其因子之和,所以6是完数。请绘制出算法的传统流程图和N-S流程图
你这个“数”的限定是什么呢?为什么都喜欢出些题意不明的题目
如果你这个“数”是指 0 至 2^32-1 内的整数(对应C语言的 uint32_t 类型),那一共就 5 个,分别是 6, 28, 496, 8128, 33550336;
如果你这个“数”是指 0 至 2^64-1 内的整数(对应C语言的 uint64_t 类型),那一共就 8 个,分别是 6, 28, 496, 8128, 33550336, 8589869056, 137438691328, 2305843008139952128;
迄今为止,人类才发现51个梅森素数,第51个梅森素数是 2^82589933-1,那么第51个完数就是 (2^82589933-1)*2^(2^82589933-1),十进制的话大约需要 49724095位。