-
1945. 간단한 소인수분해코딩 테스트/SW Expert Academy 2021. 6. 22. 22:16
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
문제 이해
-> N이 주어질 때 N=2^a x 3^b x 5^c x 7^d x 11^e 의 a, b, c, d, e 를 구하는 프로그램
문제 주의
-> N은 2 이상 10,000,000 이하의 정수
문제 풀이
-> 수가 주어지면 2로 나누었을 때 나머지가 0인 경우에 절반으로 나눈 후 a를 1 올린다.
-> 반복적으로 2로 나누어보고 더 이상 나누어 지지 않을 때 다음 단계로 이동한다.
-> 2로 계속 나눠진 수를 3으로 나누었을 때 나머지가 0인 경우에 3으로 나눈 후 b를 1 올린다.
-> 반복적으로 3으로 나누어보고 더 이상 나누어 지지 않을 때 다음 단계로 이동한다.
-> 이와 같은 방법을 반복한다.
-> 11로 나누었을 때 나머지가 남는다면 a, b, c, d, e 를 출력 양식에 맞춰 출력한다.
#include<iostream> using namespace std; int main() { int testCase, testNum; cin >> testCase; int a, b, c, d, e; for (int i = 0; i < testCase; i++) { cin >> testNum; a = b = c = d = e = 0; while (testNum % 2 == 0) { testNum /= 2; a++; } while (testNum % 3 == 0) { testNum /= 3; b++; } while (testNum % 5 == 0) { testNum /= 5; c++; } while (testNum % 7 == 0) { testNum /= 7; d++; } while (testNum % 11 == 0) { testNum /= 11; e++; } cout << "#" << i + 1 << " " << a << " " << b << " " << c << " " << d <<" " << e << endl; } return 0; }'코딩 테스트 > SW Expert Academy' 카테고리의 다른 글
1970. 쉬운 거스름돈 (0) 2021.06.23 1989. 초심자의 회문 검사 (0) 2021.06.23 1986. 지그재그 숫자 (0) 2021.06.22 1284. 수도 요금 경쟁 (0) 2021.06.21 2072. 홀수만 더하기 (0) 2021.06.21