# 유형 : 구현
# 난이도 : 실버2
# 주어진 숫자 - 자기 자신을 제외한 가장 큰 자기자신의 약수 를 구하는 문제였는데, 주어진 알고리즘을 그대로 구현했더니 통과하였다. 시간초과는 발생하지않았는데, 발생한다면 에라토스테네스의 접근을 이용하여 해결할 수 있을것 같다.
** 주어진 자연수 N이 소수이기 위한 필요충분 조건은 N이 N의 제곱근보다 크지 않은 어떤 소수로도 나눠지지 않는다. 수가 수를 나누면 몫이 발생하게 되는데 몫과 나누는 수, 둘 중 하나는 반드시 N의 제곱근 이하이기 때문이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package bj;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class p2986 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int count = 0;
for(int i=N-1; i>0; i--) {
count++;
if(N%i==0)
break;
}
System.out.println(count);
}
}
|
cs |
'백준' 카테고리의 다른 글
#백준_1986 체스 - Java 자바 (1) | 2020.03.12 |
---|---|
#백준_12761 돌다리 - Java 자바 (0) | 2020.03.11 |
#백준_2194 유닛 이동시키기 - Java 자바 (0) | 2020.03.10 |
#백준_2589 보물섬 - Java 자바 (1) | 2020.03.10 |
#백준_4948 베르트랑 공준 - Java 자바 (0) | 2020.03.07 |