列表

详情


HJ56. 完全数计算

描述

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。

它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

例如:28,它有约数12471428,除去它本身28外,其余5个数相加,1+2+4+7+14=28

输入n,请输出n以内(n)完全数的个数。

数据范围:

输入描述

输入一个数字n

输出描述

输出不超过n的完全数的个数

示例1

输入:

1000

输出:

3

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 1ms, 内存消耗: 296KB, 提交时间: 2021-09-14

#include <stdio.h>

//6 28 496 8128
int main() {
    int num = 0;
    int res = 0;
    while (scanf("%d", &num) != EOF) {
        if(num>=8192)
            res = 4;
        else if(num>=496)
            res = 3;
        else if(num>=28)
            res = 2;
        else if(num>=6)
            res = 1;
        printf("%d\n", res);
    }
    return 0;
}

C 解法, 执行用时: 1ms, 内存消耗: 308KB, 提交时间: 2020-12-05

#include <stdio.h>
const arr[4] = {6, 28, 496, 8128};
int main(void)
{
	int i, num;
	for( ; scanf("%d", &num)!=EOF; )
	{
		if(num>33550335) { printf("Out of range!!\n"); continue; }
		for(i=3; i>=0; i--)
			if(arr[i]<num) break;
		if(i>=0) { printf("%d\n", i+1); continue; }
		printf("0\n");
	}
	return 0;
}

上一题