SWEA 1945. 간단한 소인수분해
N=2a x 3b x 5c x 7d x 11e
N이 주어질 때 a, b, c, d, e 를 출력하라.
C++ 풀이 1차시도
#include <iostream>
#include <string>
using namespace std;
int cal(int q, int div) {
int answer{ 0 };
while ((q % div) == 0) {
q = q / div;
answer++;
}
return answer;
}
int main() {
int number{ 0 }, q;
cin >> number;
for (int i = 1; i <= number; i++) {
cin >> q;
cout << '#' << i << ' ' << cal(q,2) << ' ' << cal(q, 3) << ' ' << cal(q, 5) << ' ' << cal(q, 7) << ' ' << cal(q, 11) << endl;
}
}
} }
실행 시간을 줄이자
C++ 풀이 2차시도
#include <iostream>
#include <string>
using namespace std;
int main() {
int number{ 0 }, q;
int arr[5] = { 2, 3, 5, 7, 11 };
int answer[5]{ 0 };
cin >> number;
for (int i = 1; i <= number; i++) {
for (int j = 0; j < 5; j++)
answer[j] = 0;
for (int k = 0; k < 5; k++) {
while ((q % arr[k]) == 0) {
q /= arr[k];
answer[k]++;
}
}
cin >> q;
cout << '#' << i << ' ' << answer[0] << ' ' << answer[1] << ' ' << answer[2] << ' ' << answer[3] << ' ' << answer[4] << endl;
}
return 0;
}
서버 에러로 시간 체크를 못했다. 내일 다시 돌려봐야겠다.
문제 주소
https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5Pl0Q6ANQDFAUq
반응형
'알고리즘 · 코딩' 카테고리의 다른 글
[백준 9095번] 1, 2, 3 더하기 (0) | 2019.08.11 |
---|---|
코딩 테스트 문제 소스 코드 (0) | 2019.08.10 |
[SWEA 7728] 다양성 측정 (0) | 2019.08.10 |
[프로그래머스] 정수 삼각형 (0) | 2019.08.10 |
[백준 11726번] 2 x n 타일링 (0) | 2019.08.10 |