아무거나 내꺼 공부할래
뒤집은 소수 / c / 제한시간 없음 본문
▣ 문제
- 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 |
<내 코드>
#pragma warning(disable:4996)
#include<stdio.h>
#include<stdbool.h>
#include<math.h>
int reverse(int x) {
int digit[7] = { 0 };
int res = 0;
int temp;
int cnt = 0;
int d;
while (x / 10 != 0) {
temp = x % 10;
digit[cnt++] = temp;
x = x / 10;
}
digit[cnt++] = x;
d = cnt;
for (int i = 0; i < cnt; i++) {
res = res + digit[i] * pow(10, d - 1);
d--;
}
return res;
}
bool isPrime(int x) {
bool check = true;
for (int i = 2; i < x; i++) {
if (x % i == 0) check = false;
}
if (x == 1) check = false;
return check;
}
int main() {
int n;
int num[101];
int temp;
int res[101] = { 0 };
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &num[i]);
}
for (int i = 0; i < n; i++) {
if (isPrime(reverse(num[i]))) printf("%d ", reverse(num[i]));
}
return 0;
}
<수정한 코드>
#pragma warning(disable:4996)
#include<stdio.h>
#include<stdbool.h>
int reverse(int x) {
int res = 0;
int temp;
while (x > 0) {
temp = x % 10;
res = res * 10 + temp;
x = x / 10;
}
return res;
}
bool isPrime(int x) {
bool check = true;
for (int i = 2; i < x; i++) {
if (x % i == 0) check = false;
}
if (x == 1) check = false;
return check;
}
int main() {
int n;
int num;
int temp;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &num);
temp = reverse(num);
if (isPrime(temp)) printf("%d ", temp);
}
return 0;
}
코드짤때 아무 생각 없이 변수 늘리지 말자...
'[c언어&c++] 알고리즘 공부 > 인프런(Inflearn)' 카테고리의 다른 글
Jolly Jumpers / c / 제한시간 없음 (0) | 2021.01.18 |
---|---|
온도의 최대값 (1차원 배열 구간합) / c / 제한시간 : 1초 (0) | 2021.01.17 |
분노유발자 / c / 제한시간 없음 (0) | 2021.01.17 |
Anagram(구글 인터뷰 문제) / c / 제한시간 없음 (0) | 2021.01.16 |
소수의 개수 / c / 제한시간:1초 (0) | 2021.01.16 |