목적
- 소수 출력과 합을 구할줄 안다.
문제
코드
#include <iostream>
using namespace std;
int main(void)
{
int iStart = 50;
const int iEnd = 100;
int iPrime, iTotal;
int i = 2;
iPrime = iTotal = 0;
cout << "50 과 100사이에 존재하는 소수들 : ";
while(iStart <= iEnd)
{
while(i < iStart)
{
if ( iStart % i == 0 )
{
iPrime = 0;
i++;
break;
}
else
{
iPrime = 1;
i++;
}
}
if(iPrime == 1)
{
cout << iStart << " ";
iTotal += iStart;
}
iPrime = 0;
i = 2;
iStart++;
}
cout << endl << "50 과 100사이에 존재하는 소수들의 합 : " << iTotal << endl;
return 0;
}
해설
- 여러가지 알고리듬으로 풀수 있습니다. 재귀 호출을 시도하여 출력할려 했으나 실패하여 단순한 반복 알고리듬으로 대체 되었습니다. 이전 문제들을 보시고 쓸만한 소수 알고리듬을 익혀 주시기 바랍니다.
참고
- 유사 문제