public class 소수구하기 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int num = 3000000;
int not_prime = 0;
int numOfPrime;
int i;
int j;
int 제곱근값 = (int)(Math.sqrt((double)num));
for(i=2; i<=num; i++){
for(j=2; j<=제곱근값 && j<i; j++){
if(i%j == 0){
not_prime++;
break;
}
}
}
numOfPrime = num - not_prime -1;
System.out.println("소수의 개수 : " + numOfPrime);
}
}
문제점 : 숫자가 200만 넘어가면 느림
코드도장 가보니까 1000만 이하 소수 1.82초만에 구하던데
내건 1000만에 7초정도 걸리는듯
힌트좀 어떤 방법을 써야되나
어떤 수던간에 무조건 2중 for문으로 들어가서 그런건가
빨리 구할려면 복잡한 알고리즘 가지고 복잡하게 짜야지
당신의 코드가 느린 이유는 자바를 사용하는 악수를 두었기 때문입니다
님들은 20줄이하로 1초안에 1000만수 계산하는 프로그램 만들수 있음?
n까지의 소수 개수 구하는 프로그램을 누가 저렇게 짬? 에라토스테네스의 체로 구하지
주소좀 알려주셈