본문 바로가기

코딩 테스트/Project Euler @ kr

5) 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수

반응형

http://euler.synap.co.kr/prob_detail.php?id=5


1 ~ 10 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 2520입니다.

그러면 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 얼마입니까?


-----------------------------------------------------------------------


public static void main(String[] args){

int now = 20;

for(int i=2;i<=20;i++){

if(now%i==0){

if(i==20){

System.out.println(now);

break;

}

}else{

i=2;

now+=2;

}

}

}


다시 공부-----------------------------------

//1부터 검색을 해도 수행 됨.

public static void main(String arg[]){

int now = 2520; //시작 숫자

for(int i=11;i<21;i++){ //범위

if(now%i!=0){ //나누어 떨어지는 숫자를 발견하면

int j;

for(j=2;j<i;j++){ //공통 약수를 찾아본다

if(now%j==0 && i%j==0){ //공통 약수를 찾았으면 약수를 곱한다.

now *= j;

break;

}

}

if(j==i){ //공통 약수를 못찾았으면 그 숫자는 소수이기 때문에 그 수를 그냥 곱한다.

now *= i;

}

}

}

System.out.println(now);

}

반응형