본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 7789 : 텔레프라임

반응형

https://www.acmicpc.net/problem/7789

 

7789번: 텔레프라임

소수를 매우 좋아하는 수학자가 있다. 이 수학자는 매번 전화번호를 받을 때 마다, 그 전화번호가 소수인지 아닌지를 검사한다. 수학자는 자신의 모든 친구의 전화번호가 소수인지 아닌지를 기

www.acmicpc.net

구현문제였습니다.

📕 풀이방법

📔 입력 및 초기화

기존 전화번호 phoneNum과 앞 자리에 새롭게 추가되는 번호 num을 선언한 후 입력받습니다.

📔 풀이과정

함수 isPrime을 시행합니다. n을 인자로 받습니다.

소수는 나눠 떨어지는 수가 자기 자신 또는 1뿐인 수입니다. 따라서 for문을 돌며 2 ~ (num - 1)까지 num을 나누었을 때 나누어 떨어진다면 소수가 아니므로 false를 반환합니다.

for loop 탈출 후 소수이므로 true를 반환합니다.

📔 정답출력

phoneNum, num + phonenum에 대해 isPrime이 true라면 소수이므로 Yes, 아니라면 No를 출력합니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
string phoneNum, num;

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

int main(){
    cin >> phoneNum >> num;
    if(isPrime(stoi(phoneNum)) && isPrime(stoi(num + phoneNum))) cout << "Yes";
    else cout << "No";
}