题解 | #完全数计算#

完全数计算

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;
}

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

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

全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务