14 怪数

问题描述 :

寻找怪数:有一种奇怪的自然数,它的比其本身小的所有因子之和等于它本身,例如:6=1+2+3,其中1、2、3都是6的因子,编程找出整数N之内的所有怪数。

输入说明 :

输入一个整数N(10<=N≤10000),在行首和行尾没有多余的空格。

输出说明 :

输出N之内(<=N)的所有怪数,每一行输出一个整数。(注:若N中有3个怪数,你则需要输出三行,每行一个怪数。)所有数据前后没有多余的空格,中间也没有多余的空行。

输入范例 :28

输出范例 :6
28

 

思想:两重循环,外层遍历从1到输入数,内层从1开始找所有因数,累加,判断最后内层累加结果是否等于外层当前遍历的数,是的话直接打印。

 

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a;
    scanf("%d",&a);

    for (int i =1;i<=a;i++){
        int sum;
        for(int j=1;j<i;j++){
            if (i%j==0){
                sum+=j;
            }
        }
        if (sum==i){
            printf("%d\n",i);
        }
        sum =0;
    }
    return 0;
}

 

posted @ 2022-02-24 14:33  梦想是能睡八小时的猪  阅读(42)  评论(0)    收藏  举报