質問編集履歴
4
改善案の実装
title
CHANGED
File without changes
|
body
CHANGED
@@ -42,8 +42,8 @@
|
|
42
42
|
|
43
43
|
boolean isTest = true;
|
44
44
|
|
45
|
-
for (int i = s; i < e; i+
|
45
|
+
for (int i = s; i < e; i+=2) {//奇数のみ
|
46
|
-
for (int j = 1; j <= e; j+
|
46
|
+
for (int j = 1; j <= e; j+=2) {//奇数のみ
|
47
47
|
int k = 0;
|
48
48
|
while (true) {
|
49
49
|
if (isPrime(k * k + k * i + j)) {
|
@@ -115,4 +115,13 @@
|
|
115
115
|
```java
|
116
116
|
//n = k;修正前
|
117
117
|
n = k + 1;//修正後:0の時もカウント
|
118
|
-
```
|
118
|
+
```
|
119
|
+
---
|
120
|
+
追記4:a,bの探索範囲は奇数のみで良いので修正
|
121
|
+
```java
|
122
|
+
for (int i = s; i < e; i+=2) {//奇数のみ
|
123
|
+
for (int j = 1; j <= e; j+=2) {//奇数のみ
|
124
|
+
```
|
125
|
+
a:-61 b:971 n:70
|
126
|
+
-59231
|
127
|
+
37ms
|
3
バグの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
while (true) {
|
49
49
|
if (isPrime(k * k + k * i + j)) {
|
50
50
|
if (n < k) {
|
51
|
-
n = k;
|
51
|
+
n = k + 1;//修正:0の時もカウント
|
52
52
|
a = i;
|
53
53
|
b = j;
|
54
54
|
ans = i * j;
|
@@ -108,4 +108,11 @@
|
|
108
108
|
for (int i = 2; i <= Math.sqrt(x) ; i++) {
|
109
109
|
a:-61 b:971 n:70
|
110
110
|
-59231
|
111
|
-
58ms
|
111
|
+
58ms
|
112
|
+
|
113
|
+
---
|
114
|
+
追記3:n=0の時もカウントしてるので出力で+1するように修正
|
115
|
+
```java
|
116
|
+
//n = k;修正前
|
117
|
+
n = k + 1;//修正後:0の時もカウント
|
118
|
+
```
|
2
改善案を実装
title
CHANGED
File without changes
|
body
CHANGED
@@ -80,8 +80,9 @@
|
|
80
80
|
}
|
81
81
|
//追記終わり。
|
82
82
|
|
83
|
-
|
83
|
+
//判定範囲は√xまでで良いので修正
|
84
|
-
for (int i = 2; i <= x / 2; i++) {
|
84
|
+
//for (int i = 2; i <= x / 2; i++) {
|
85
|
+
for (int i = 2; i <= Math.sqrt(x) ; i++) {
|
85
86
|
if (x % i == 0) {
|
86
87
|
return false;
|
87
88
|
}
|
@@ -100,4 +101,11 @@
|
|
100
101
|
追記:正解出ました。
|
101
102
|
a:-61 b:971 n:70
|
102
103
|
-59231
|
103
|
-
286ms
|
104
|
+
286ms
|
105
|
+
|
106
|
+
---
|
107
|
+
追記2:素数判定範囲は√までで良いので修正
|
108
|
+
for (int i = 2; i <= Math.sqrt(x) ; i++) {
|
109
|
+
a:-61 b:971 n:70
|
110
|
+
-59231
|
111
|
+
58ms
|
1
自己解決とバグ修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -71,6 +71,16 @@
|
|
71
71
|
}
|
72
72
|
|
73
73
|
static boolean isPrime(int x) {
|
74
|
+
|
75
|
+
//追記:自己解決
|
76
|
+
//引数xが1以下でも処理していたのが原因でした。
|
77
|
+
//下記条件を追加するだけで正解が出ました。
|
78
|
+
if (x <= 1) {
|
79
|
+
return false;
|
80
|
+
}
|
81
|
+
//追記終わり。
|
82
|
+
|
83
|
+
|
74
84
|
for (int i = 2; i <= x / 2; i++) {
|
75
85
|
if (x % i == 0) {
|
76
86
|
return false;
|
@@ -84,4 +94,10 @@
|
|
84
94
|
出力結果
|
85
95
|
a:-999 b:61 n:1010
|
86
96
|
-60939
|
87
|
-
546ms
|
97
|
+
546ms
|
98
|
+
|
99
|
+
---
|
100
|
+
追記:正解出ました。
|
101
|
+
a:-61 b:971 n:70
|
102
|
+
-59231
|
103
|
+
286ms
|