Algorithm/Cases-Study

SWEA-1945 간단한 소인수분해

Xi_kor 2021. 3. 18. 20:33

2로 나눠지는 한 2로 계속 나누고 3으로 나눠지는 한 3으로 계속 나누는 과정을 반복한 뒤에 각각을 출력했다.

#include<iostream>

using namespace std;

int main(int argc, char** argv)
{
	int test_case;
	int T;
	cin>>T;
	for(test_case = 1; test_case <= T; ++test_case)
	{
		int twonum=0;
		int threenum=0;
		int fivenum=0;
		int sevennum=0;
		int elevennum=0;
		
		int a;
		cin>>a;
		
		while(a%2==0){
			a=a/2;
			twonum++;
		}
		
		while(a%3==0){
			a=a/3;
			threenum++;
		}
		
		while(a%5==0){
			a=a/5;
			fivenum++;
		}
		
		while(a%7==0){
			a=a/7;
			sevennum++;
		}
		
		while(a%11==0){
			a=a/11;
			elevennum++;
		}
		
		cout<<"#"<<test_case<<" "<<twonum<<" "<<threenum<<" "<<fivenum<<" "<<sevennum<<" "<<elevennum<<'\n';
	}
	return 0;//정상종료시 반드시 0을 리턴해야합니다.
}