문제
소수를 매우 좋아하는 수학자가 있다. 이 수학자는 매번 전화번호를 받을 때 마다, 그 전화번호가 소수인지 아닌지를 검사한다. 수학자는 자신의 모든 친구의 전화번호가 소수인지 아닌지를 기억하고 있다.
계속해서 늘어나는 휴대전화 인구의 급증에 따라 정부는 한 자리를 기존 번호 앞에 붙이는 정책을 시행하기로 했다.
수학자는 큰 고민에 빠졌다. 소수 전화번호를 가지고 있는 친구의 전화번호가 이제 평범한 숫자가 될 수도 있기 때문이다.
수학자의 친구 중 한 사람의 원래 전화번호와 새로이 앞에 붙는 번호 한 자리가 주어졌을 때, 원래 전화번호와 새로운 전화번호가 모두 소수인지 아닌지를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 여섯 자리의 기존 전화번호와 새로 추가되는 한 자리 번호가 주어진다. 기존 전화번호는 0으로 시작하지 않으며, 새로 추가되는 한 자리 번호는 0이 아니다.
출력
원래 전화번호와 새로운 전화번호가 소수이면 Yes를, 아니면 No를 출력한다.
예제 입력 1
946859 2 |
예제 출력 1
Yes |
더보기
Solution
#include<stdio.h>
#include<stdbool.h>
bool isPrime(int N)
{
if(N<2)
return false;
else if(N==2)
return true;
else if(N%2==0)
return false;
else
for(int n=3;n*n<=N;n+=2)
if(N%n==0)
return false;
return true;
}
int main(void)
{
int old, new;
scanf("%d %d", &old, &new);
new=1000000*new+old;
printf("%s\n", isPrime(old)&&isPrime(new)?"Yes":"No");
return 0;
}
728x90
'백준 알고리즘' 카테고리의 다른 글
<백준 알고리즘> 2757번: 엑셀 (0) | 2021.01.03 |
---|---|
<백준 알고리즘> 2502번: 떡 먹는 호랑이 (0) | 2021.01.03 |
<백준 알고리즘> 16495번: 열 순서 (0) | 2021.01.03 |
<백준 알고리즘> 14761번: FizzBuzz (0) | 2021.01.03 |
<백준 알고리즘> 20499번: Darius님 한타 안 함? (0) | 2021.01.03 |