質問編集履歴

4

改善案の実装

2018/08/22 17:09

投稿

opyon
opyon

スコア1009

test CHANGED
File without changes
test CHANGED
@@ -86,9 +86,9 @@
86
86
 
87
87
 
88
88
 
89
- for (int i = s; i < e; i++) {
89
+ for (int i = s; i < e; i+=2) {//奇数のみ
90
-
90
+
91
- for (int j = 1; j <= e; j++) {
91
+ for (int j = 1; j <= e; j+=2) {//奇数のみ
92
92
 
93
93
  int k = 0;
94
94
 
@@ -233,3 +233,21 @@
233
233
  n = k + 1;//修正後:0の時もカウント
234
234
 
235
235
  ```
236
+
237
+ ---
238
+
239
+ 追記4:a,bの探索範囲は奇数のみで良いので修正
240
+
241
+ ```java
242
+
243
+ for (int i = s; i < e; i+=2) {//奇数のみ
244
+
245
+ for (int j = 1; j <= e; j+=2) {//奇数のみ
246
+
247
+ ```
248
+
249
+ a:-61 b:971 n:70
250
+
251
+ -59231
252
+
253
+ 37ms

3

バグの修正

2018/08/22 17:09

投稿

opyon
opyon

スコア1009

test CHANGED
File without changes
test CHANGED
@@ -98,7 +98,7 @@
98
98
 
99
99
  if (n < k) {
100
100
 
101
- n = k;
101
+ n = k + 1;//修正:0の時もカウント
102
102
 
103
103
  a = i;
104
104
 
@@ -219,3 +219,17 @@
219
219
  -59231
220
220
 
221
221
  58ms
222
+
223
+
224
+
225
+ ---
226
+
227
+ 追記3:n=0の時もカウントしてるので出力で+1するように修正
228
+
229
+ ```java
230
+
231
+ //n = k;修正前
232
+
233
+ n = k + 1;//修正後:0の時もカウント
234
+
235
+ ```

2

改善案を実装

2018/08/22 16:40

投稿

opyon
opyon

スコア1009

test CHANGED
File without changes
test CHANGED
@@ -162,9 +162,11 @@
162
162
 
163
163
 
164
164
 
165
-
165
+ //判定範囲は√xまでで良いので修正
166
-
166
+
167
- for (int i = 2; i <= x / 2; i++) {
167
+ //for (int i = 2; i <= x / 2; i++) {
168
+
169
+ for (int i = 2; i <= Math.sqrt(x) ; i++) {
168
170
 
169
171
  if (x % i == 0) {
170
172
 
@@ -203,3 +205,17 @@
203
205
  -59231
204
206
 
205
207
  286ms
208
+
209
+
210
+
211
+ ---
212
+
213
+ 追記2:素数判定範囲は√までで良いので修正
214
+
215
+ for (int i = 2; i <= Math.sqrt(x) ; i++) {
216
+
217
+ a:-61 b:971 n:70
218
+
219
+ -59231
220
+
221
+ 58ms

1

自己解決とバグ修正

2018/08/22 16:13

投稿

opyon
opyon

スコア1009

test CHANGED
File without changes
test CHANGED
@@ -144,6 +144,26 @@
144
144
 
145
145
  static boolean isPrime(int x) {
146
146
 
147
+
148
+
149
+ //追記:自己解決
150
+
151
+ //引数xが1以下でも処理していたのが原因でした。
152
+
153
+ //下記条件を追加するだけで正解が出ました。
154
+
155
+ if (x <= 1) {
156
+
157
+ return false;
158
+
159
+ }
160
+
161
+ //追記終わり。
162
+
163
+
164
+
165
+
166
+
147
167
  for (int i = 2; i <= x / 2; i++) {
148
168
 
149
169
  if (x % i == 0) {
@@ -171,3 +191,15 @@
171
191
  -60939
172
192
 
173
193
  546ms
194
+
195
+
196
+
197
+ ---
198
+
199
+ 追記:正解出ました。
200
+
201
+ a:-61 b:971 n:70
202
+
203
+ -59231
204
+
205
+ 286ms