https://www.acmicpc.net/problem/11653
소인수분해 성공
예제 입력
72
예제 출력
2 2 2 3 3
소인수 분해를 할때 n의 root(n)까지만 해보면 소수인지를 알 수 있는 수학식? 이 떠올랐다.. 거창할건 없고
그냥 2로 나눠질때까지 계속 나눠주고, 안나눠지면 3으로 해보고 +1, +1 이런식으로 n이 1될까지 반복 끗
나눠지면 값을 나누고 반복문 돌리고 n 이 1일 될때까지 !
#include <iostream>
using namespace std;
int main(){
long n = 0;
cin >> n;
int i = 2;
while(true){
if(n==1) break;
if((n%i) == 0){ cout << i << endl; n /= i; i = 2;} else i++;
}
}
'컴퓨터공학 > 알고리즘 _ 문제해결' 카테고리의 다른 글
10799 쇠막대기 백준 알고리즘 문제 스택 (0) | 2017.01.08 |
---|---|
1063 king 킹 시뮬레이션 백준 알고리즘 ! (0) | 2017.01.04 |
1408 24 백준 알고리즘 온라인저지 (0) | 2016.12.26 |
백준 알고리즘 2934 소음 문제! (0) | 2016.12.22 |
2163 초콜릿 자르기 Dynamic Programing 백준 (0) | 2016.12.21 |