백준알고리즘
백준알고리즘:p4948 베르트랑 공준 -소수
socialcomputer
2021. 3. 31. 19:59
반응형
분류: 기본수학2
▶문제
▶코드
//백준알고리즘 제출시 클래스 이름은 Main으로 바꿔야 됨
package math_2;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class p4948 {
//베르트랑 공준 : n과 2n 사이에(n보다 크고 2n보다 작거나 같은)는 적어도 1개의 소수가 존재한다는 것 증명됨.
public static void main(String[] args) {
try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));){
while(true) {
int n = Integer.parseInt(br.readLine());
if(n==0) break;//0이 입력되면 입력을 중단.
int count =0;
for(int i=n+1; i<=2*n; i++) {
boolean prime=true;
for(int k=2; k<=Math.sqrt(i); k++) {//근삿값보다 작거나 같.아.야. 함!!!
if(i%k==0) {
prime = false;
break;
}
}
if(prime) count+=1; //소수일 떄만 카운트
}
bw.write(String.valueOf(count)+"\n");
bw.flush();
}
}catch (Exception e) {e.printStackTrace();}
}
}
▶n보다 크고 2n보다 작거나 같은 수 중에서 소수의 갯수를 모두 찾는 문제다.
틀렸던 것 : 근삿값 sqrt(i) 보다 작거나 같을 때까지 검사를 해야 하는데 같거나를 빼서 틀렸다.
▶또 다른 문제랑 다른 점 : 여태까진 케이스의 갯수를 알고 풀었는데 이건 0이 입력되면 종료되도록 하는 방식이었다.
채점결과
링크 www.acmicpc.net/status?user_id=ske05058&problem_id=4948&from_mine=1
채점 현황
www.acmicpc.net
반응형