• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

5. 소수(에라토스테네스 체) 문제 질문 있습니다!

21.09.14 00:12 작성 조회수 101

0

아래 코드가 혹시 왜 틀렸는지 알 수 있을까요? 우선 배열을 사용하지 않고 짜 보고 싶어서 이렇게 짰습니다

 

코드를 짠 의도는 2와 3으로 나누어지지 않는 것들이 소수이기 때문에 이 경우에 answer++를 해서 answer가 쌓이도록 했고, if(i == 2 || i == 3)은 1과 자기 자신만을 가지기 때문에 따로 예외를 둬 처리했습니다 답은 알맞게 나오는데 채점을 하면 오답이라고 떠서 코드에 문제가 있는 건지 아니면 제가 문제를 잘못 이해한 것인지 궁금해서 질문 올립니다

 

import java.util.*;

 

public class Main {

public int solution(int n) {

int answer = 0;

for(int i = 2; i < n+1; i++) {

if (i == 2 || i == 3) {

answer++;

}

else if(i % 2 != 0 && i % 3 != 0) {

answer++;

}

}

return answer;

}

 

public static void main(String[] args) {

Main m = new Main();

Scanner sc = new Scanner(System.in);

int n = sc.nextInt();

System.out.print(m.solution(n));

}

}

답변 1

답변을 작성해보세요.

0

안녕하세요^^

2와 3으로 나누어 떨어지지 않는 숫자가 소수는 아닙니다. 님의 논리라면 

25, 35, 49 등등이 다 소수라는 것입니다.

cod2님의 프로필

cod2

2021.09.20

헐 감사합니다 ㅠㅠ 너무 앞부분만 보고 있었네요