개발소설

소수(prime number) 구하기, 제곱근 사용 본문

CS/알고리즘

소수(prime number) 구하기, 제곱근 사용

ChaeHing 2023. 2. 21. 23:47

소수란, 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수다.

for(int i=2; i<num; i++){
	if(num % i == 0) return false// 조건식에 걸리면 소수아님
} return true // 조건식에 걸리지 않았으면 소수

/* 
   2부터 자기 자신까지 수를 증가 시키면서 계속 나눠 보다가 나눠 떨어지는 수를 확인
   나눠 떨어지면 소수가 아니고 num % i == 0
   나눠 떨어지지 않으면 소수가 맞다 num % i != 0
*/

/* 
   제곱근을 사용 하여 반복횟수 줄이기
   Math.sqrt() -> 제곱근을 구하는 메소드
   소수는 약수가 자기 자신과 1밖에 없음
   num=81 -> 1, 3, 9, 27, 81
   81의 제곱근은 9, 약수들은 제곱근을 기준으로 대칭되므로 제곱근 까지만 확인해도
   소수인지 알수 있음
*/

for(int i=2; i<=Math.sqrt(num); i++){ // 조건식을 제곱근까지는 진행해야함
     if(num % i == 0) return false;
}
return true;
Comments