문제
N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성하세요.
예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력 한다.
단 910를 뒤집으면 19로 숫자화 해야 한다. 첫 자리부터의 연속된 0은 무시한다. 뒤집는 함수인 int reverse(int x) 와 소수인지를 확인하는 함수 bool isPrime(int x)를 반드시 작성하여 프로그래밍 한다.
입력설명
첫 줄에 자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다. 각 자연수의 크기는 100,000를 넘지 않는다.
출력설명
첫 줄에 뒤집은 소수를출력합니다. 출력순서는 입력된 순서대로 출력합니다.
입력예제
5
32 55 62 3700 250
출력예제
23 73
#include<stdio.h>
using namespace std;
int reverse(int x){
int temp, result=0;
while(x>0){
temp = x % 10;
result = result * 10 + temp;
x = x / 10;
}
return result;
}
bool isPrime(int x){
int i, temp;
if(x == 1) return false;
bool flag = true;
for(i=2; i<x; i++){
if(x%i == 0){
flag = false;
break;
}
}
return flag;
}
int main(){
freopen("input.txt", "rt", stdin);
int n, number, i, temp;
scanf("%d", &n);
for(i=1; i<=n; i++){
scanf("%d", &number);
temp = reverse(number);
if(isPrime(temp)) printf("%d ", temp);
}
return 0;
}
'알고리즘 > it 취업을 위한 알고리즘 문제풀이' 카테고리의 다른 글
16. Anagram(아나그램 : 구글 인터뷰 문제) <algorithm> (0) | 2021.05.17 |
---|---|
15. 소수의 개수 (0) | 2021.05.17 |
13. 가장 많이 사용된 자릿수 (0) | 2021.05.15 |
12. 숫자의 총 개수(large) (0) | 2021.05.15 |
11. 숫자의 총 개수(small) (0) | 2021.05.13 |