소수 출력하기

uglyduck.dev·2020년 9월 29일
0

알고리즘 🧮

목록 보기
13/16

문제

  • 1~100000사이의 모든 소수들을 찾아서 출력하시오.

소수

  • 1과 자기자신을 제외한 약수를 갖지 않는 수

출력

2
3
5
7
11
13

...

99923
99929
99961
99971
99989
99991

풀이

public class Main{
     public static void main(String[] args){
         for(int i=2; i<=100000; n++){
              boolean isPrime = true;
              for(int i=2; i*i<=n && isPrime; i++{
                   if(n%i == 0)
                       isPrime = false;
              }
              if(isPrime)
                  System.out.println(n);
         }
     }
}
  • 각각의 정수 n에 대해서 이 for문을 돌면서 2보다 크거나 같은 약수가 있는지 검사한다. 하나라도 약수가 있다면 이미 소수가 아니므로 더 이상 검사할 필요가 없다.

  • 변수 isPrime이 어떤 역할을 하는지 잘 생각해봐야한다.

문제

입력된 수가 소수인지 판별하시오

출력

7은 소수입니다.

풀이

public class Main{
     public static void main(String[] args){
         int num = 7;
         
         boolean isPrimeNumber = true;
         
         for(int i=2; i<=num/2; i++){
              if(num%i==0)
                  isPrimeNumber = false;
         }
         if(isPrimeNumber){
             System.out.println(num + "은 소수입니다.");
         } else {
             System.out.println(num + "은 소수가 아닙니다.");
         }
     }
}

Reference

profile
시행착오, 문제해결 그 어디 즈음에.

0개의 댓글