質問編集履歴
4
何についてのプログラムなのかを付け加えました
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
2~1000個の標準入力ができるようなプログラムにしたい
|
4
4
|
また可能であればコードをよりすっきりさせたい
|
5
|
+
これは完全数かほぼ完全数かそれ以外かを判定するプログラムです
|
5
6
|
|
6
7
|
### 発生している問題・エラーメッセージ
|
7
8
|
|
3
何度も更新すみません。これで最後です
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,15 +1,18 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
+
|
2
|
-
|
3
|
+
2~1000個の標準入力ができるようなプログラムにしたい
|
3
|
-
|
4
|
+
また可能であればコードをよりすっきりさせたい
|
5
|
+
|
4
6
|
### 発生している問題・エラーメッセージ
|
5
7
|
|
6
8
|
```
|
7
|
-
|
9
|
+
PaizaのサイトではEOFErrorとなる
|
10
|
+
VScodeでは標準入力後にEnterをいくら押しても実行が完了しない(1行目のrangeを(2,10)などにしても同様
|
8
11
|
```
|
9
12
|
|
10
|
-
|
13
|
+
### 該当のソースコード
|
11
14
|
|
12
|
-
```
|
15
|
+
```Python 3.x
|
13
16
|
mylist =[input() for i in range(2,1000)]
|
14
17
|
|
15
18
|
|
@@ -40,4 +43,5 @@
|
|
40
43
|
|
41
44
|
for i in mylist:
|
42
45
|
complete.cal(i)
|
43
|
-
complete.check(i)
|
46
|
+
complete.check(i)
|
47
|
+
```
|
2
標準入力error以外は問題ないコードにしました
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
完全数かほぼ完全数かそれ以外なのかを判別するプログラムを書きたい
|
2
|
+
完全数かほぼ完全数かそれ以外なのかを判別するプログラムを書きたい
|
3
|
-
|
3
|
+
(判断される値の範囲は1~50)
|
4
4
|
### 発生している問題・エラーメッセージ
|
5
5
|
|
6
6
|
```
|
@@ -10,31 +10,34 @@
|
|
10
10
|
最初の行でEOFerrorとなる
|
11
11
|
|
12
12
|
```ここに言語名を入力
|
13
|
-
mylist =[
|
13
|
+
mylist =[input() for i in range(2,1000)]
|
14
14
|
|
15
|
-
S=0
|
16
15
|
|
16
|
+
class Complete(object):
|
17
|
+
def __init__(self):
|
18
|
+
self.S=0
|
19
|
+
|
17
|
-
def cal(x):
|
20
|
+
def cal(self,x):
|
18
21
|
for i in range(1,int(x-1)):
|
19
22
|
if x % i == 0:
|
20
|
-
S += i
|
23
|
+
self.S += i
|
21
24
|
|
22
|
-
def check(self,y):
|
25
|
+
def check(self,y):
|
23
|
-
|
26
|
+
if 1<y<=50:
|
24
|
-
|
27
|
+
if self.S == y:
|
25
|
-
|
28
|
+
print("perfect")
|
26
29
|
|
27
|
-
|
30
|
+
elif abs(y-self.S)== 1:
|
28
|
-
|
31
|
+
print("nearly")
|
29
32
|
|
33
|
+
else:
|
34
|
+
print("neither")
|
35
|
+
|
30
36
|
else:
|
31
|
-
print(
|
37
|
+
print()
|
32
38
|
|
33
|
-
else:
|
34
|
-
|
39
|
+
complete = Complete()
|
35
40
|
|
36
41
|
for i in mylist:
|
37
|
-
cal(i)
|
42
|
+
complete.cal(i)
|
38
|
-
check(i)
|
43
|
+
complete.check(i)
|
39
|
-
|
40
|
-
```
|
1
コードを見直しました。標準入力はとりあえず消しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -10,28 +10,31 @@
|
|
10
10
|
最初の行でEOFerrorとなる
|
11
11
|
|
12
12
|
```ここに言語名を入力
|
13
|
-
mylist =[
|
13
|
+
mylist =[13,45,76,123]
|
14
14
|
|
15
15
|
S=0
|
16
16
|
|
17
|
-
def
|
17
|
+
def cal(x):
|
18
|
-
if 1<=x<=50:
|
19
|
-
for i in range(1,x-1):
|
18
|
+
for i in range(1,int(x-1)):
|
20
19
|
if x % i == 0:
|
21
20
|
S += i
|
22
21
|
|
22
|
+
def check(self,y):
|
23
|
+
if 1<y<=50:
|
23
|
-
if S ==
|
24
|
+
if self.S == y:
|
24
25
|
print("perfect")
|
25
|
-
|
26
|
+
|
26
|
-
elif abs(
|
27
|
+
elif abs(y-self.S)== 1:
|
27
28
|
print("nearly")
|
28
|
-
|
29
|
+
|
29
30
|
else:
|
30
31
|
print("neither")
|
31
|
-
|
32
|
+
|
32
33
|
else:
|
33
34
|
print()
|
34
|
-
|
35
|
+
|
35
36
|
for i in mylist:
|
37
|
+
cal(i)
|
36
38
|
check(i)
|
39
|
+
|
37
40
|
```
|