#문제
https://www.acmicpc.net/problem/11653
#작성 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include <iostream>
#include <algorithm>
using namespace std;
int n;
int prime[10000000];
int numprime=0;
int INF = 10000000;
int main(){
cin>>n;
int tmp = n;
for(int i=2; i<=n; i++){
prime[i] = i;
}
for(int i=2, j; i*i<=n; i++){
if( prime[i]==i ){
numprime++;
for(int j=i+i; j<=n; j=j+i){
prime[j]=INF;
}
}
}
sort(prime, prime+numprime);
int i=2;
while(tmp!=1){
while(tmp%prime[i]==0){
tmp/=prime[i];
cout<<prime[i]<<'\n';
}
i++;
}
return 0;
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include <iostream>
using namespace std;
int n;
int main(){
cin>>n;
int tmp = n;
for(int i=2; i<=n; i++){
while(tmp%i==0){
tmp/=i;
cout<<i<<'\n';
}
}
return 0;
}
|
cs |
##
첫 코드는 에라토스테네스의 체를 이용한 코드이다. 200ms정도의 수행시간을 보였다.
두 번째 코드는 2부터 n까지 단순히 나누어떨어지지않을때까지 나눠서 n을 1로 만드는 방식이다. 약 32ms의 수행시간을 보였다.
'BOJ' 카테고리의 다른 글
BOJ 2981번 :: 검문 (0) | 2019.12.22 |
---|---|
BOJ 10217번 :: KCM Travel (0) | 2019.12.21 |
BOJ 11404번 :: 플로이드 (0) | 2019.12.20 |
BOJ 1541번 :: 잃어버린 괄호 (0) | 2019.12.20 |
BOJ 1865번 :: 웜홀 (0) | 2019.12.19 |