목적
  - 소수 출력과 합을 구할줄 안다.

문제
사용자 삽입 이미지

코드

#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;
}


해설
  - 여러가지 알고리듬으로 풀수 있습니다. 재귀 호출을 시도하여 출력할려 했으나 실패하여 단순한 반복 알고리듬으로 대체 되었습니다. 이전 문제들을 보시고 쓸만한 소수 알고리듬을 익혀 주시기 바랍니다.

참고
  - 유사 문제


Posted by 카켈