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;
}

+ Recent posts