题解 | #完全数计算#

完全数计算

https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84

#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);
    int count=0;    
    for(int i=5;i<=n;i++){
        int tmpSum=0;
        for(int j=2;j*j<=i;j++){
            if(i%j==0&&(j*j)!=i){
                tmpSum+=(j+i/j);
            }
            else if(i%j==0&&(j*j)==i){
                tmpSum+=j;
            }
        }
        if(tmpSum==i-1) count++;
    }
    printf("%d\n",count);
    return 0;
}

按照题目的要求找到每个数的因子,由于这里给的数据并不大,所以逐项遍历可以解决问题,特别注意的是万一遇到平方和等于原数的,那么需要对因子只加一次(虽然感觉上这样的数因子之和一定小于完全数);

在上述的基础上对数据统计输出即可。

全部评论

相关推荐

赏个offer求你了:友塔HR还专门加我告诉我初筛不通过😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务