(소수 + 2×제곱수)로 나타내지 못하는 가장 작은 홀수인 합성수는?
Problem 46
[ProjectEuler.net 원본]
출제 일시 : 2012-01-03 19:11:35, ☕
크리스티안 골드바흐는 모든 홀수인 합성수를 (소수 + 2×제곱수)로 나타낼 수 있다고 주장했습니다.
9 = 7 + 2×12
15 = 7 + 2×22
21 = 3 + 2×32
25 = 7 + 2×32
27 = 19 + 2×22
33 = 31 + 2×12
그러나 이 추측은 잘못되었음이 밝혀졌습니다.
위와 같은 방법으로 나타낼 수 없는 가장 작은 홀수 합성수는 얼마입니까?
import 'dart:math';
int end = 10000;
void main() {
for (int i = 9; i < end; i+=2) {
if(isPrime(i)){
continue;
}
if(isGoldbach(i)){
continue;
}
print('$i is error');
}
}
bool isPrime(n){
for(int i=2;i<=sqrt(n);i++){
if(n%i==0){
return false;
}
}
return true;
}
bool isGoldbach(i){
for(int j=1; 2*j*j<=i;j++){
if(isPrime(i-2*j*j)){
return true;
}
}
return false;
}
신년 맞이 해봤더니 한 번에 풀렸다.
신기방기.