質問編集履歴
4
改善案の実装
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
バグの修正
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
改善案を実装
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
自己解決とバグ修正
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
|