프로젝트 오일러 47

바르고·2023년 1월 3일
0

(소수 + 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;
}

신년 맞이 해봤더니 한 번에 풀렸다.
신기방기.

profile
바르고의 다락방

0개의 댓글