🍧 μ½”λ”©ν…ŒμŠ€νŠΈ

[μΈν”„λŸ° C++] 14. 뒀집은 μ†Œμˆ˜

peewoong 2024. 3. 21. 19:00

N개의 μžμ—°μˆ˜κ°€ μž…λ ₯되면 각 μžμ—°μˆ˜λ₯Ό 뒀집은 ν›„ κ·Έ 뒀집은 μˆ˜κ°€ μ†Œμˆ˜μ΄λ©΄ κ·Έ 수λ₯ΌμΆœλ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ„Έμš”. 예λ₯Ό λ“€μ–΄ 32λ₯Ό  λ’€μ§‘μœΌλ©΄ 23이고, 23은 μ†Œμˆ˜μ΄λ‹€. 그러면 23을 좜λ ₯ν•œλ‹€. 단 910을 λ’€μ§‘μœΌλ©΄, 19둜 μˆ«μžν™”ν•΄μ•Όν•œλ‹€. 첫 μžλ¦¬λΆ€ν„°μ˜ μ—°μ†λœ 0은 λ¬΄μ‹œν•œλ‹€. 뒀집은 ν•¨μˆ˜μΈ int reverse(int x)와 μ†Œμˆ˜μΈμ§€ ν™•μΈν•˜λŠ” ν•¨μˆ˜ bool isPrime(int x)λ₯Ό λ°˜λ“œμ‹œ μž‘μ„±ν•œλ‹€.

 

μž…λ ₯

5

32 55 62 3700 250

 

좜λ ₯

23 73

 

#include <iostream>
using namespace std;

int reverse(int x){
	int res, tmp;
	
	while(x>0){
		tmp = x % 10;
		res = res * 10 + tmp;
		x = x / 10;
	}
	
	return res;
}

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

int main(void){
	int n, num, temp;
	
	cin >> n;
	for(int i = 0; i < n; ++i){
		cin >> num;
		temp = reverse(num);
		
		if(isPrime(temp)){
			cout << temp;
		}
	}
	
	return 0;
}