아직은 정체성이 없는 블로그

[SWEA][D2][c++] 1945. 간단한 소인수분해 본문

알고리즘 역량테스트 문제/SWEA

[SWEA][D2][c++] 1945. 간단한 소인수분해

coooding 2020. 7. 20. 00:23

문제

1945. 간단한 소인수분해

 

문제 링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pl0Q6ANQDFAUq

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

풀이 과정

1. 입력 받은 숫자를 2,3,5,7,11 순서대로 나머지값이 0이 아닐때까지 나누어준다.

2. 2,3,5,7,11의 각각 몇번 나누어 떨어졌는지 result[] 배열에 저장한다.

3. result 배열에 저장된 값을 출력한다.

 

코드

#include<iostream>
#include<cstring>

using namespace std;

int num[]={2,3,5,7,11};

int main(int argc, char** argv)
{
    int result[5];
	int test_case;
	int T;
	scanf("%d",&T);
	for(test_case = 1; test_case <= T; ++test_case)
	{
        memset(result,0,sizeof(result));
        int n;
        scanf("%d",&n);
        int flag=0;

        while(flag<5){
        	if(n%num[flag]==0){
                n/=num[flag];
            	result[flag]++;
            }
            else
                flag++;
        }

        printf("#%d %d %d %d %d %d\n",test_case,result[0],result[1],result[2],result[3],result[4]);
	}
	return 0;
}
Comments