Lecture2_5
Time Limit Exceed 뜸
import java.util.Scanner;
public class Lecture2_5 {
public static boolean isPrime(int number) {
// number가 2이면 소수 (true)
if (number == 2) {
return true;
}
// number를 1과 number 사이에 있는 모든 자연수로 나누었을때 나머지가 0인 숫자가 하나라도 있으면 소수가 아니다 (false)
for (int i = 2 ; i < number ; i++) {
if (number % i == 0) {
return false;
}
}
// 나머지가 0인 숫자가 하나도 없으면 소수이다 (true)
return true;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
for (int i = 2 ; i < n + 1 ; i++) {
if (isPrime(i)) {
count++;
}
}
System.out.print(count);
}
}
강의 내용
import java.util.Scanner;
// 강의 내용
public class Lecture2_5_Success {
public static int countPrime(int n) {
// 선언
int answer = 0;
int[] iArr = new int[n+1];
// 2부터 시작하여 자연수 n까지 for문 시작
for (int i = 2 ; i < n + 1 ; i++) {
// 약수가 한 번도 존재하지 않았으면 인덱스의 값이 0이므로 소수이다
if (iArr[i] == 0) {
// 소수이기 때문에 카운트한다
answer++;
// 소수로 카운트된 숫자를 약수로 갖는 수들의 인덱스 값을 1로 한다
for (int j = 0 ; j < n + 1 ; j = j + i) {
iArr[j] = 1;
}
}
}
return answer;
}
public static void main(String[] args) {
// 값 받기
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
// 출력
System.out.println(countPrime(n));
}
}
Author And Source
이 문제에 관하여(Lecture2_5), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ikerbm94/Lecture25저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)