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

2019春季考试 大美数

时间:2019-03-06 19:30:14      阅读:563      评论:0      收藏:0      [点我收藏+]

标签:正整数   msu   pts   超过   ret   hit   scanf   temp   数组   

7-1 大美数 (15 分)

若正整数 N 可以整除它的 4 个不同正因数之和,则称这样的正整数为“大美数”。本题就要求你判断任一给定的正整数是否是“大美数”。

输入格式:

输入在第一行中给出正整数 K(10),随后一行给出 K 个待检测的、不超过 10?4?? 的正整数。

输出格式:

对每个需要检测的数字,如果它是大美数就在一行中输出 Yes,否则输出 No

输入样例:

3
18 29 40

输出样例:

Yes
No
Yes




 1 #include<cstdio>
 2 #include<cmath>
 3 int isBeautiful(int m){
 4     int b[70];
 5     int temp=0;//如果是大美数字,则为,否则为0. 
 6     int j=0;
 7     for(int i=1;i<=m;i++){
 8         if(m%i==0){
 9             b[j]=i;
10             j++;
11         }
12     } 
13     
14     //j是数组的程度,遍历输入m的正因数。 
15 //    for(int i=0;i<70;i++){
16 //        printf("%d   ", b[i]);
17 //    }
18 //    printf("\n");//遍历输出m的正因数,以作检验。 
19  
20     for(int w=0;w<j-3;w++){
21         for(int x=w+1;x<j-2;x++){
22             for(int y=w+2;y<j-1;y++){
23                 for(int z=w+3;z<j;z++){
24                     int sum=b[w]+b[x]+b[y]+b[z];
25                     if(m%sum==0)temp=1;
26                 }
27             }
28         }
29     }//四重循环秘技。 
30     return temp;
31 } 
32 int main(){
33     int n;
34     scanf("%d", &n);
35     int a[n];
36     for(int i=0;i<n;i++){
37         scanf("%d", &a[i]); 
38         if(isBeautiful(a[i])==1){
39             printf("Yes\n");
40         }
41         else{
42             printf("No\n");
43         }
44     }
45     return 0;
46 } 

 

2019春季考试 大美数

标签:正整数   msu   pts   超过   ret   hit   scanf   temp   数组   

原文地址:https://www.cnblogs.com/genghongjun/p/10485251.html

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