본문 바로가기
Web Programming/JAVA

Java / 1부터 100까지 소수합 구하기

by hyeon-H 2021. 7. 29.
728x90
반응형

소수는

1과 자기자신만으로 나누어지는 수 ex) 7 , 17  . . . 


1부터 100까지의 소수의 합을 구하는 코드는 아래와 같다.

public static void main(String[] args) {
  int sum = 0;
  for(int i=2; i<=100; i++) {   	//i는 2~100까지 증가한다.
    int count = 0;			//count는 소수인지 확인하는 역할은 한다.
    for(int x=1; x<=i; x++) {		//i의 값만큼 증가하며 i에 나눠지는 수 x를 만든다 
   	 if(i % x == 0) {		//i/x의 나머지가 0이라면, count를 증가시키는데
   	 count++;			//소수라면 count는 2가 나온다.
    }
 	 }
    if(count == 2) {			//소수라면
   	 sum += i;			//i의 값을 sum에 더한다.
   	 System.out.println(i+", "); 	//소수라면 현재의 값을 출력한다.
    }
  }
  System.out.println("sum = "+sum);
}

더 설명을 하면 소수는 1과 자기자신의 수로 나누어지는 수를 말하는데

자기 자신이 이외에 나눴을때 나머지가 0인 경우가 있으면 그 수는 소수가 될 수 없고, 값이 출력되지 않는다.



반대로 소수가 아닌 수의 합을 구하기 위해서는??

//간단하다 아래의 if문이 소수인지 확인을 하고 있다.
if(count ==2) {
  sum += i;
  System.out.println(i+", ");
}
//if문의 비교문을 부정으로 변경해주면 소구가 아닌 수만 구할 수 있다.
//↓
if(count != 2) {
  sum += i;
  System.out.println(i+", ");
}

 

728x90
반응형