C++ 소수 판별

C++Beginner
지금 연습하기

소개

이 랩에서는 C++ 에서 주어진 숫자가 소수 (prime number) 인지 합성수 (composite number) 인지 확인하는 방법을 배웁니다. 소수는 1 보다 크고 1 과 자기 자신 외에는 어떤 숫자로도 나누어 떨어지지 않는 숫자입니다. 합성수는 1 보다 크고 1 과 자기 자신 외의 숫자로 나누어 떨어지는 숫자입니다.

isPrime() 함수 정의

정수를 입력받아 해당 정수가 소수인지 여부를 나타내는 부울 값을 반환하는 isPrime() 함수를 정의합니다.

#include <iostream>
#include <math.h>

using namespace std;

bool isPrime(int n)
{
    if (n == 1)
        return false; // 1 은 소수가 아님

    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return false;
    }

    return true;
}

위 코드에서는 주어진 숫자가 어떤 숫자로 나누어 떨어지는지 확인합니다. 그러한 숫자가 없으면 그 숫자는 소수입니다. 숫자가 1 이면 소수가 아닙니다.

main() 함수 작성

이제 사용자로부터 입력을 받아 isPrime() 함수를 사용하여 주어진 숫자가 소수인지 합성수인지 판단하는 main() 함수를 작성합니다.

int main()
{
    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " ===== Most Efficient Program to determine if the entered number is Prime or not. ===== \n\n";

    cout << " ===== Note: 1 is neither Prime nor Composite. ===== \n\n";

    int n;
    bool prime = false;

    cout << " Enter a positive integer other than 1 :  ";
    cin >> n;

    prime = isPrime(n);

    if (prime)
    {
        cout << "\n\nThe entered number " << n << " is a Prime number.";
    }
    else
    {
        cout << "\n\nThe entered number " << n << " is Composite number.";
    }

    cout << "\n\n\n";

    return 0;
}

프로그램 컴파일 및 실행

다음과 같이 g++ 명령을 사용하여 코드를 컴파일합니다.

g++ main.cpp -o main

그런 다음 ./main 명령을 사용하여 프로그램을 실행합니다.

./main

프로그램은 1 이 아닌 양의 정수를 입력하라는 메시지를 표시합니다. 숫자를 입력하고 Enter 키를 누르세요.

그런 다음 프로그램은 입력된 숫자가 소수인지 합성수인지 출력합니다.

main.cpp 전체 코드

#include <iostream>
#include <math.h>

using namespace std;

bool isPrime(int n)
{
    if (n == 1)
        return false; // 1 is not a prime number

    for (int i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            return false;
    }

    return true;
}

int main()
{
    cout << "\n\nWelcome to LabEx :-)\n\n\n";
    cout << " ===== Most Efficient Program to determine if the entered number is Prime or not. ===== \n\n";

    cout << " ===== Note: 1 is neither Prime nor Composite. ===== \n\n";

    int n;
    bool prime = false;

    cout << " Enter a positive integer other than 1 :  ";
    cin >> n;

    prime = isPrime(n);

    if (prime)
    {
        cout << "\n\nThe entered number " << n << " is a Prime number.";
    }
    else
    {
        cout << "\n\nThe entered number " << n << " is Composite number.";
    }

    cout << "\n\n\n";

    return 0;
}

요약

이 랩에서는 C++ 에서 주어진 숫자가 소수 (prime) 인지 합성수 (composite) 인지 확인하는 방법을 배웠습니다. 1 과 자기 자신 외의 다른 숫자로 나누어지는지 여부에 따라 주어진 숫자가 소수인지 판별하는 함수를 사용했습니다. 그런 다음, 사용자로부터 입력을 받아 숫자가 소수인지 합성수인지 출력하는 main() 함수에서 이 함수를 사용했습니다.