이 코드는 올바른 것처럼 보이지만 출력 할 때 "2"라고 표시됩니다. 나는 여러 번 그것을 보려고했지만 매번 내가 틀린 것을 찾지 못했다. 그래서 나는 누군가 내가 다음과 같은 코드를 보면서 내가 뭘 잘못하고 있는지 알려주지 않을지 궁금해하고있다.C++에서 숫자가 소수인지 확인하는 방법
#include <iostream>
using namespace std;
bool oddOrEven(int x)
{
int divisor = 2; // initial divisor check
bool boolCheck = true; // initial boolean value set to true, later to check
for(int i = x-1; i >= 2;i--)
{
if(i%divisor == 0)
boolCheck = false;
}
return boolCheck; // returning whether or not the number is prime
}
int main()
{
int num1 = 0;
cout << "Please enter how many numbers you want to check: " << endl;
cin >> num1;
cout << "Prime numbers from 2-" << num1 << endl;
for(int i=num1; i >= 2; i--)
{
if(oddOrEven(i))
cout << i << endl;
}
}
도움이 될만한 점은 제 부검 검사와 관련이있는 것 같지만 100 %는 아닙니다.
EDIT : 게시하기 전에 나는 내가 제수를 늘리지 않았다는 것을 깨달았습니다. 그래서 그것을 시도했지만 여전히 올바르게 나오지 않습니다. 내가 바뀐 것은 이랬다 :
for(int i = x-1; i >= 2;i--)
{
if(i%divisor == 0)
boolCheck = false;
divisor = divisor + 1;
}
그래서 나는 아직도 고민 중이다.
나는 혼란 스럽다. "oddOrEven"== 모든 숫자의 집합입니다. –
나는 당신이 무엇을 의미하는지 혼란 스럽다. oddOrEven (i)을 사용할 때를 의미합니까? – BpVx
'oddOrEven (x)'는'isOdd (x) ||를 나타냅니다. isEven (x)'는 항상 'true'입니다. –