teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

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

2020/07/16 06:34

投稿

pussy_pussy
pussy_pussy

スコア22

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

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

2020/07/16 06:33

投稿

pussy_pussy
pussy_pussy

スコア22

title CHANGED
File without changes
body CHANGED
@@ -1,15 +1,18 @@
1
1
  ### 前提・実現したいこと
2
+
2
- 完全数かほぼ完全数かそれ以外なかを判別するプログラムを書きたい
3
+ 2~1000個標準入力ができようなプログラムにしたい
3
- (判断さる値の範囲は1~50)
4
+ また可能であばコードをよりすっきりさせたい
5
+
4
6
  ### 発生している問題・エラーメッセージ
5
7
 
6
8
  ```
7
- エラーメッセージ
9
+ PaizaのサイトではEOFErrorとなる
10
+ VScodeでは標準入力後にEnterをいくら押しても実行が完了しない(1行目のrangeを(2,10)などにしても同様
8
11
  ```
9
12
 
10
- 最初行でEOFerrorとなる
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以外は問題ないコードにしました

2020/07/16 06:32

投稿

pussy_pussy
pussy_pussy

スコア22

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
- 完全数かほぼ完全数かそれ以外なのかを判別するプログラムを書きたい
2
+ 完全数かほぼ完全数かそれ以外なのかを判別するプログラムを書きたい
3
- 最初に複数行の標準入力をす(個数は2~1000で値は1~50)
3
+ (判断される値の範囲は1~50)
4
4
  ### 発生している問題・エラーメッセージ
5
5
 
6
6
  ```
@@ -10,31 +10,34 @@
10
10
  最初の行でEOFerrorとなる
11
11
 
12
12
  ```ここに言語名を入力
13
- mylist =[13,45,76,123]
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
- if 1<y<=50:
26
+ if 1<y<=50:
24
- if self.S == y:
27
+ if self.S == y:
25
- print("perfect")
28
+ print("perfect")
26
29
 
27
- elif abs(y-self.S)== 1:
30
+ elif abs(y-self.S)== 1:
28
- print("nearly")
31
+ print("nearly")
29
32
 
33
+ else:
34
+ print("neither")
35
+
30
36
  else:
31
- print("neither")
37
+ print()
32
38
 
33
- else:
34
- print()
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

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

2020/07/16 06:25

投稿

pussy_pussy
pussy_pussy

スコア22

title CHANGED
File without changes
body CHANGED
@@ -10,28 +10,31 @@
10
10
  最初の行でEOFerrorとなる
11
11
 
12
12
  ```ここに言語名を入力
13
- mylist =[input() for i in range(2,1000)]
13
+ mylist =[13,45,76,123]
14
14
 
15
15
  S=0
16
16
 
17
- def check(x):
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 == x:
24
+ if self.S == y:
24
25
  print("perfect")
25
-
26
+
26
- elif abs(x-S)==1:
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
  ```