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