반응형
문제
정수 N을 입력받고 N 이하의 소수를 출력하시오.
정답
- 이전 글인 소수판별 문제 답에서 확장함
- decideN 클래스 내에서 정의된 num 이 소수인지 판단하는데, 특정 값을 입력받아 소수인지 판단하는 함수가 필요했으므로 decideN2를 정의함
- num 보다 작은 수들에 decideN2 를 적용하고 소수일 경우 출력되게 함.
#include <iostream>
using namespace std;
class myprime
{
private:
int num;
public:
myprime(const int num);
int decideN(); // num이 소수인지 판단
int decideN2(int n); // 입력된 n이 소수인지 판단
void NumPrime(); // num이하의 소수 출력
};
myprime::myprime(const int N)
{
num = N;
}
int myprime::decideN()
{
int a = 0;
if (num == 1) { return 0; }
else
{
for (int i = 2; i < num; i++)
{
if (num % i == 0) { return 0; }
}
return 1;
}
}
int myprime::decideN2(int n)
{
int a = 0;
if (n == 1) { return 0; }
else
{
for (int i = 2; i < n; i++)
{
if (n % i == 0) { return 0; }
}
return 1;
}
}
void myprime::NumPrime()
{
if (decideN() == 0)
{
cout << "소수아님" << endl;
}
else if (decideN() == 1)
{
cout << "입력하신 수 이하의 소수는 아래와 같습니다." << endl;
for (int i = 1; i <= num; i++)
{
if (decideN2(i) == 1)
{
cout << i << endl;
}
}
}
}
int main()
{
int num;
cout << "숫자를 입력하세요. (소수이면 1, 아니면 0이 출력됩니다.)";
cin >> num;
myprime num1(num);
cout << num1.decideN() << endl;
num1.NumPrime();
return 0;
}
반응형
'코딩 연습문제 > C++ 연습문제' 카테고리의 다른 글
[C++ 코딩문제] 소수 판별 (0) | 2022.08.26 |
---|---|
[C++ 코딩문제] 두 정수 A,B 입력받고, 평균 출력 (0) | 2022.08.08 |
댓글