質問編集履歴

4

何についてのプログラムなのかを付け加えました

2020/07/16 06:34

投稿

pussy_pussy
pussy_pussy

スコア22

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

何度も更新すみません。これで最後です

2020/07/16 06:33

投稿

pussy_pussy
pussy_pussy

スコア22

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,12 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 完全数かほぼ完全数かそれ以外なのかを判別するプログラムを書きたい
4
3
 
4
+
5
+ 2~1000個の標準入力ができるようなプログラムにしたい
6
+
5
- (判断れる値の範囲は1~50)
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
- 最初行でEOFerrorとなる
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以外は問題ないコードにしました

2020/07/16 06:32

投稿

pussy_pussy
pussy_pussy

スコア22

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,8 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 完全数かほぼ完全数かそれ以外なのかを判別するプログラムを書きたい
3
+ 完全数かほぼ完全数かそれ以外なのかを判別するプログラムを書きたい
4
4
 
5
- 最初に複数行の標準入力をす(個数は2~1000で値は1~50)
5
+ (判断される値の範囲は1~50)
6
6
 
7
7
  ### 発生している問題・エラーメッセージ
8
8
 
@@ -22,58 +22,64 @@
22
22
 
23
23
  ```ここに言語名を入力
24
24
 
25
- mylist =[13,45,76,123]
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
- S=0
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("neither")
73
+ print()
62
74
 
63
75
 
64
76
 
65
- else:
66
-
67
- print()
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

コードを見直しました。標準入力はとりあえず消しました

2020/07/16 06:25

投稿

pussy_pussy
pussy_pussy

スコア22

test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  ```ここに言語名を入力
24
24
 
25
- mylist =[input() for i in range(2,1000)]
25
+ mylist =[13,45,76,123]
26
26
 
27
27
 
28
28
 
@@ -30,11 +30,9 @@
30
30
 
31
31
 
32
32
 
33
- def check(x):
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 == x:
47
+ if self.S == y:
46
48
 
47
49
  print("perfect")
48
50
 
49
-
50
51
 
52
+
51
- elif abs(x-S)==1:
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
  ```