N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 수를 출력하는 프로그램을 작성해보자.
예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력 한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 뒤집는 함수인 int reverse(int x) 와 소수인지를 확인하는 함수 bool isPrime(int x)를 반드시 작성하여 프로그래밍 한다.
힌트 : 숫자 뒤집는 방법생각하기
소수란? 나눠지는 수가 없는 숫자를 말한다.
#include <stdio.h>
int reverse(int x){
int res = 0;
while(x>0){
int tmp = x%10;
res = res*10 +tmp;
x= x/10;
}
return res;
}
bool isPrime(int x){
int i;
bool flag = true;
if(x ==1){
return false;
}
for(i = 2; i < x; i++){
if(x%i ==0){
flag=false;
break;
}
}
return flag;
}
int main(int argc, char** argv) {
//freopen("input.txt", "rt", stdin);
int n, num, i, tmp;
scanf("%d",&n);
for(i = 1; i<=n;i++){
scanf("%d",&num);
tmp = reverse(num);
if(isPrime(tmp)){
printf("%d ", tmp);
}
}
return 0;
}
'개발 소발 > 개발 알고리즘' 카테고리의 다른 글
알고리즘 - 자릿수의 합 C++ 구현 (0) | 2019.09.06 |
---|---|
알고리즘 - 올바른 괄호 C++ 구현 (0) | 2019.09.04 |
알고리즘 - 영어단어 복구 C++구현 (0) | 2019.09.04 |
알고리즘 - 숫자만 추출 c++구현 (0) | 2019.09.04 |
알고리즘 - 진약수의 합 C++ 구현 (0) | 2019.09.04 |