728x90
방법1 : 기본 판별법
boolean isPrime(int num){
if(num==1)
return false;
for(int i=2;i<num;i++){
if(num%i==0){
return false;
}
}
return true;
}
방법2 : 제곱근을 이용한 기본 판별법
boolean isPrime(int num){
if(num==1){
return false;
}
for(int i=2;i<=Math.sqrt(num);i++){
if(num%i==0)
return false;
}
return true;
}
방법3 : 에라토스테스이 체
boolean[] makePrime(int num){
boolean[] prime = new boolean[num+1];
prime[0] = true;
prime[1] = true;
prime[2] = false;
for(int i=2;i<=Math.sqrt(num);i++){
int j = 1;
while(i*j<=num){
if(prime[i*j]==false){
j++;
continue;
}
prime[i*j] = true;
j++;
}
return prime;
}
}
문제 풀이는 제곱근을 이용하여 풀었다.
import java.io.*;
import java.util.StringTokenizer;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine();
int count = 0;
StringTokenizer st = new StringTokenizer(br.readLine()," ");
while(st.hasMoreTokens()){
boolean isPrime = true;
int num = Integer.parseInt(st.nextToken());
if(num==1)
continue;
for(int i=2;i<=Math.sqrt(num);i++){
if(num%i==0){
isPrime = false;
break;
}
}
if(isPrime)
count++;
}
System.out.print(count);
}
}
'알고리즘 기초1 Java' 카테고리의 다른 글
수학1_9613번 : GCD 합 (2) | 2024.03.22 |
---|---|
수학1_1676 번 : 팩토리얼 0의 개수 JAVA (0) | 2024.03.21 |
수학1_10872 번 : 팩토리얼 JAVA (0) | 2024.03.20 |
수학1_2609번 : 최대공약수와 최소공배수 (0) | 2024.03.18 |
수학1_10430 번 : 나머지 JAVA (0) | 2024.03.18 |