조띵의지극히개인적인공간

2520은 1에서 10까지의 모든 수로 나누어 떨어집니다.

1부터 20까지의 수로 모두 나누어 떨어지는 가장 작은 수는 얼마인가요?





내맘대로 해설:
 답은 1부터 20까지의 최소 공배수를 구하는 것이다.  x와 y 두 수가 있다면 이 수는 
  x= a * x'
  y= a * y'
로 표현 할수 있고 여기서 a는 최대 공약수가 된다. 그렇다면 최소 공배수는 x * y' 이다.


void func()
{
int Value = 20;
for (int i=20; i>=1; i--)
{
for (int o=i-1; o>=1; o--)
{
if (Value%o==0 && (i-1)%o==0)
{
Value=Value*(i-1)/o;
break;
}
}
}

printf("Value=%d\n", Value);
}
저작자 표시
신고
Posted by 조띵


티스토리 툴바