2016-06-07 2 views
2

1 ~ 100의 모든 소수를 찾아서 출력 할 프로그램을 작성했지만 실제 소수는 출력되지 않습니다.소수를 찾았지만 출력하지 않음

#include "stdafx.h" 
#include <iostream> 
using namespace std; 

int main() 
{ 
    for (int i = 1; i <= 100; i++) 
{ 
    for (int j = i-1; j >= 2; j--) 
    { 
     if (i == 1) 
      break; 
     else if (j == 1) 
      cout << i; 
     else if (i % j == 0) 
      break; 
    } 
} 
return 0; 
} 

어떤 도움을 주시면 감사하겠습니다 :

여기 내 코드입니다! 당신을 위해

답변

3

깜짝 퀴즈 :

다음 루프 조건을 감안할 때 :

for (int j = i-1; j >= 2; j--) 

내가 특별히 반복하는 루프에 필요한 년대 "j >= 2"부분을 참조하고; 그래서 귀하의 팝업 퀴즈 질문은 다음과 같습니다 :

다음과 같은 if 성명은 true로 평가 될 것이라고 생각합니까?

 if (j == 1) 

그리고 당신은 루프 조건이 j >= 2j이 가능, 1의 값에 도달 할 수 있습니다 당신은 그런 일이 얼마나 설명 할 수 있다고 생각한다면?

나에게 그것이 일어날 수 있다고 생각하지 않습니까? 이것이 코드가 출력을 생성하지 않는 이유입니다. 당신이 j==2j==1을 변경 한 후

+0

그건 의미가 있습니다. (j == 1)을 (j == 2)로 변경하면 잘 작동합니다. 감사! – postfan

1

, 당신은 또한 수를 2에 의해 분할 될 수 있는지를 판단하는 또 다른 if를 추가 할 필요가, 그 출력됩니다에게 올바른 소수를 생각한다.

관련 문제