반응형
문제:
정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오. |
입력:
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. |
출력:
N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. |
소인수분해:
소인수분해는 다들 알고 있듯이, 나눠지지 않는 수로 이루어진 식으로 나타난다고 쉽게 생각하면 된다. |
예제:
소수로 이루어진 수들로 출력을 해야 하므로,
while문으로 계속 돌면서
if문을 통해 나눠지면 print, 나눠지지 않으면 계속 돌리면 될 듯 하다.
Python
간단하게 num을 입력받고, 소수 2부터 나눠보면 된다.
계속 돌면서 나눠지면 print하고, 아니면 +1을 해준다.
num = int(input());
i=2
while num!=1 :
if num%i == 0:
num = num/i
print(i)
else : i+=1
C++
#include <iostream>
using namespace std;
int main(){
int num;
int i = 2;
cin >> num;
while(num != 1){
if(num % i == 0){
num = num/i;
cout << i << "\n";
}
else
i++;
}
}
Python이 확실히 시간이 더 걸린다.
반응형
'백준' 카테고리의 다른 글
[백준알고리즘]10828번 스택 python (0) | 2020.08.07 |
---|---|
[백준알고리즘]1676번 팩토리얼0의 개수 python,c++ (0) | 2020.08.01 |
[백준알고리즘]1932번 정수삼각형 파이썬Python (0) | 2020.07.25 |
[백준알고리즘]11399번 ATM 파이썬, c++ (0) | 2020.07.25 |
[백준알고리즘]14889번 스타트와 링크 c++ (0) | 2020.07.19 |