码迷,mamicode.com
首页 > 其他好文 > 详细

数字的秘密

时间:2018-10-23 20:45:08      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:scanf   sum   lse   for   输入   can   很多   自己   turn   

在数字王国中,人人都有一个号码,人人都想知道这个号码对自己意味着什么。国王便做了很多个盒子,每个盒子拥有一个号码。人们需要通过一定的方法才能确定哪个盒子有自己的秘密。这个办法就是把自己的数字N的全部因子相加求和。例如12,他因子之和就是1+2+3+4+6=16。现在他们邀请你帮助编写一个函数,寻找他们的密码盒子。

输入

输入数据的第一行是一个数字T(1 <= T <= 500000),它表明有T个需要进行测试的数字,然后是T个测试数据,每个测试数据为一个数字N(0 <= N <= 500000)。

输出

对于每个测试数据,请输出一个代表输入数据的密码编号。

样例输入

3
2
10
20

样例输出

1
8
22
#include<stdio.h>
#define LEN 500000
int yz(int);
int main(){
    int i,n,num[LEN];
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&num[i]);
    }
    for(i=0;i<n;i++){
        printf("%d\n",yz(num[i]));
    }
    return 0;
}
int yz(int num){
    int i,sum=0;
    if(num==0)  sum=1;
    else if(num==1) sum=1;
    else{
        for(i=1;i<num;i++){
            if(num%i==0)    sum+=i;
        }
    }
    return sum;
}

 

数字的秘密

标签:scanf   sum   lse   for   输入   can   很多   自己   turn   

原文地址:https://www.cnblogs.com/Lazy-Cat/p/9838186.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!