알고리즘 문제풀기/인프런 강의 정답

14. 뒤집은 소수 [코드구현력 기르기]

코다람쥐 2022. 3. 20. 14:45

나의정답.

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <string>

using namespace std;

int num[6] = {};

int reverse(int x) {
	int digit = 0;
	int res = 0;
	int temp = x;

	while (temp > 0) {
		temp /= 10;
		digit++;
	}

	for (int i = 0; i < digit; i++) {
		num[i] = (x % 10);
		x /= 10;
	}

	for (int i = 0; i < digit; i++)
	{
		for (int j = i; j < digit - 1; j++) {
			num[i] *= 10;
		}
		res += num[i];
	}
	return res;
}

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

int main(int argc, char** argv) {
	//freopen("input.txt", "rt", stdin);

	int i;
	int n;
	int prime[100];
	int input;
	int rev;
	int cnt = 0;

	scanf("%d", &n);

	for (i = 0; i < n; i++) {
		scanf("%d", &input);

		rev = reverse(input);

		if (isPrime(rev) && rev != 1) {
			prime[cnt++] = rev;
		}
	}

	for (i = 0; i < cnt; i++) {
		printf("%d ", prime[i]);
	}
}

// A 65, Z 90
// a 97, z 122 
// '0' 48