File tree 6 files changed +194
-8
lines changed
solution/0500-0599/0507.Perfect Number
6 files changed +194
-8
lines changed Original file line number Diff line number Diff line change 62
62
<!-- 这里可写当前语言的特殊实现逻辑 -->
63
63
64
64
``` python
65
-
65
+ class Solution :
66
+ def checkPerfectNumber (self , num : int ) -> bool :
67
+ if num == 1 :
68
+ return False
69
+ s, i = 1 , 2
70
+ while i * i <= num:
71
+ if num % i == 0 :
72
+ s += i
73
+ if i != num // i:
74
+ s += num // i
75
+ i += 1
76
+ return s == num
66
77
```
67
78
68
79
### ** Java**
69
80
70
81
<!-- 这里可写当前语言的特殊实现逻辑 -->
71
82
72
83
``` java
84
+ class Solution {
85
+
86
+ public boolean checkPerfectNumber (int num ) {
87
+ if (num == 1 ) {
88
+ return false ;
89
+ }
90
+ int s = 1 ;
91
+ for (int i = 2 ; i * i <= num; ++ i) {
92
+ if (num % i == 0 ) {
93
+ s += i;
94
+ if (i != num / i) {
95
+ s += num / i;
96
+ }
97
+ }
98
+ }
99
+ return s == num;
100
+ }
101
+ }
102
+
103
+ ```
104
+
105
+ ### ** C++**
106
+
107
+ ``` cpp
108
+ class Solution {
109
+ public:
110
+ bool checkPerfectNumber(int num) {
111
+ if (num == 1) return false;
112
+ int s = 1;
113
+ for (int i = 2; i * i <= num; ++i)
114
+ {
115
+ if (num % i == 0)
116
+ {
117
+ s += i;
118
+ if (i != num / i) s += num / i;
119
+ }
120
+ }
121
+ return s == num;
122
+ }
123
+ };
124
+ ```
73
125
126
+ ### **Go**
127
+
128
+ ```go
129
+ func checkPerfectNumber(num int) bool {
130
+ if num == 1 {
131
+ return false
132
+ }
133
+ s := 1
134
+ for i := 2; i*i <= num; i++ {
135
+ if num%i == 0 {
136
+ s += i
137
+ if i != num/i {
138
+ s += num / i
139
+ }
140
+ }
141
+ }
142
+ return s == num
143
+ }
74
144
```
75
145
76
146
### ** ...**
Original file line number Diff line number Diff line change 60
60
### ** Python3**
61
61
62
62
``` python
63
-
63
+ class Solution :
64
+ def checkPerfectNumber (self , num : int ) -> bool :
65
+ if num == 1 :
66
+ return False
67
+ s, i = 1 , 2
68
+ while i * i <= num:
69
+ if num % i == 0 :
70
+ s += i
71
+ if i != num // i:
72
+ s += num // i
73
+ i += 1
74
+ return s == num
64
75
```
65
76
66
77
### ** Java**
67
78
68
79
``` java
80
+ class Solution {
81
+
82
+ public boolean checkPerfectNumber (int num ) {
83
+ if (num == 1 ) {
84
+ return false ;
85
+ }
86
+ int s = 1 ;
87
+ for (int i = 2 ; i * i <= num; ++ i) {
88
+ if (num % i == 0 ) {
89
+ s += i;
90
+ if (i != num / i) {
91
+ s += num / i;
92
+ }
93
+ }
94
+ }
95
+ return s == num;
96
+ }
97
+ }
98
+
99
+ ```
100
+
101
+ ### ** C++**
102
+
103
+ ``` cpp
104
+ class Solution {
105
+ public:
106
+ bool checkPerfectNumber(int num) {
107
+ if (num == 1) return false;
108
+ int s = 1;
109
+ for (int i = 2; i * i <= num; ++i)
110
+ {
111
+ if (num % i == 0)
112
+ {
113
+ s += i;
114
+ if (i != num / i) s += num / i;
115
+ }
116
+ }
117
+ return s == num;
118
+ }
119
+ };
120
+ ```
69
121
122
+ ### **Go**
123
+
124
+ ```go
125
+ func checkPerfectNumber(num int) bool {
126
+ if num == 1 {
127
+ return false
128
+ }
129
+ s := 1
130
+ for i := 2; i*i <= num; i++ {
131
+ if num%i == 0 {
132
+ s += i
133
+ if i != num/i {
134
+ s += num / i
135
+ }
136
+ }
137
+ }
138
+ return s == num
139
+ }
70
140
```
71
141
72
142
### ** ...**
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ bool checkPerfectNumber (int num) {
4
+ if (num == 1 ) return false ;
5
+ int s = 1 ;
6
+ for (int i = 2 ; i * i <= num; ++i)
7
+ {
8
+ if (num % i == 0 )
9
+ {
10
+ s += i;
11
+ if (i != num / i) s += num / i;
12
+ }
13
+ }
14
+ return s == num;
15
+ }
16
+ };
Original file line number Diff line number Diff line change
1
+ func checkPerfectNumber (num int ) bool {
2
+ if num == 1 {
3
+ return false
4
+ }
5
+ s := 1
6
+ for i := 2 ; i * i <= num ; i ++ {
7
+ if num % i == 0 {
8
+ s += i
9
+ if i != num / i {
10
+ s += num / i
11
+ }
12
+ }
13
+ }
14
+ return s == num
15
+ }
Original file line number Diff line number Diff line change 1
- public class Solution {
1
+ class Solution {
2
2
public boolean checkPerfectNumber (int num ) {
3
- if (num == 0 || num == 1 ) {
3
+ if (num == 1 ) {
4
4
return false ;
5
5
}
6
- int sum = 1 ;
7
- for (int i = 2 ; i <= Math . sqrt ( num ); i ++ ) {
6
+ int s = 1 ;
7
+ for (int i = 2 ; i * i <= num ; ++ i ) {
8
8
if (num % i == 0 ) {
9
- sum = sum + i + num / i ;
9
+ s += i ;
10
+ if (i != num / i ) {
11
+ s += num / i ;
12
+ }
10
13
}
11
14
}
12
- return num == sum ;
15
+ return s == num ;
13
16
}
14
17
}
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def checkPerfectNumber (self , num : int ) -> bool :
3
+ if num == 1 :
4
+ return False
5
+ s , i = 1 , 2
6
+ while i * i <= num :
7
+ if num % i == 0 :
8
+ s += i
9
+ if i != num // i :
10
+ s += num // i
11
+ i += 1
12
+ return s == num
You can’t perform that action at this time.
0 commit comments