자료구조 & 알고리즘/프로그래머스
Level 0. 유한소수 판별하기
diesuki4
2023. 2. 8. 07:03
Level 0. 유한소수 판별하기
유한 소수인 분수는 다음을 만족한다.
최소공배수를 구하여 약분하기보다는 이 풀이가 좀 더 간단하고 효율적이라고 생각한다.
분모를 먼저 2와 5로 나누어 떨어지지 않을 때까지 나눈다.
이때 분자가 분모로 나누어 떨어지면 유한 소수로 나타낼 수 있는 분수이다.
#include <iostream>
using namespace std;
int solution(int a, int b)
{
while ((b & 1) == 0)
b >>= 1;
while (b % 5 == 0)
b /= 5;
return (a % b) ? 2 : 1;
}