725. 完全数

一个整数,除了本身以外的其他所有约数的和如果等于该数,那么我们就称这个整数为完全数。

例如,6 就是一个完全数,因为它的除了本身以外的其他约数的和为 1+2+3=6。

现在,给定你 N 个整数,请你依次判断这些数是否是完全数。

输入格式

第一行包含整数 N,表示共有 N 个测试用例。

接下来 N 行,每行包含一个需要你进行判断的整数 X。

输出格式

每个测试用例输出一个结果,每个结果占一行。

如果测试数据是完全数,则输出 X is perfect,其中 X 是测试数据。

如果测试数据不是完全数,则输出 X is not perfect,其中 X 是测试数据。

数据范围

1≤N≤100,

1≤X≤108

输入样例:

3
6
5
28

输出样例:

6 is perfect
5 is not perfect
28 is perfect

AC

这个是我自己写的答案,但是编译器显示超时了,因为它的测试数据实在是太大了。放在最后面了,因为太长了!!!

#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

int main()
{
    int n;
    cin>>n;
    int x;
    for(int i=0;i<n;i++){
        cin>>x;
        int sum=0;
        for(int j=1;j<x;j++){
            if(x%j==0)
            sum=sum+j;
        }
        if(sum==x) printf("%d is perfect",x);
        else printf("%d is not perfect",x);
        cout<<endl;
    }
    return 0;
}

测试数据

100
42584631
6407132
16116057
7794585
36700210
6124684
39551457
80877955
22089554
92725984
17892387
63149937
45801500
22079144
96231364
30709828
55815955
65061548
66239979
16828721
87920927
96466470
71764408
80614904
19205128
91942507
23911522
35377761
27131983
77576341
52241764
20309670
56081352
70259677
45580358
70625412
494992
78765532
13811846
33550336
85173548
7565563
49144260
50199698
97261316
71324087
43062912
20997589
46314429
44660813
86203791
15889515
51433644
24618779
21559340
5002115
79022519
66337449
77795302
67619032
28217436
43223746
35253484
33398946
33304239
33850792
28578249
63897696
47469710
65641128
16389277
69230977
16530280
38754260
45608824
75934018
87340226
2835183
45982573
4575572
97761145
742249
72248968
94567693
78632580
88392320
58459087
15083149
3853893
6064149
69544365
37265792
17685249
70414350
50977398
32076767
68224989
53411902
98886720
50815664
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摆烂.MVP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值