C언어 문제은행

[C문제은행] 뒤집은 소수

Coder101 2022. 2. 16. 22:07

 

문제

여러 숫자를 입력받고, 각 숫자가 뒤집었을 때 소수이면 출력을 하는 프로그램을 만들어보세요.
조건 1 : 숫자를 뒤집었을 때 소수이면 출력을 합니다 (ex. 32를 뒤집었을 때 23이고, 23은 소수이므로 출력)
조건 2 : 최소 두 개 이상의 함수를 사용해주세요.

 

입력예시 1

입력받을 숫자의 개수를 입력해주세요: 3
각 1번째 숫자를 입력해주세요: 32
각 2번째 숫자를 입력해주세요: 11
각 3번째 숫자를 입력해주세요: 71

출력예시 1

32 11 71

 

입력예시 2

입력받을 숫자의 개수를 입력해주세요: 2
각 1번째 숫자를 입력해주세요: 23
각 2번째 숫자를 입력해주세요: 34

 

 출력예시 2

34

 

 

<예시코드>

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

void Prime (int n);  //숫자가 소수인지 아닌지 구분해주는 함수
int Reverse(int n);  //입력 받은 숫자를 뒤집어 주는 함수

int main(void)
{
    int num;
    int arr[100]={0,};
    printf("입력 받을 숫자의 개수를 입력해주세요:");
    scanf("%d", &num);
    
    for(int i = 0; i < num; i++)
    {
        printf("%d번째 숫자를 입력해주세요:", i+1);
        scanf("%d", &arr[i]);
    }
    for(int i = 0; i < num; i++)
    {
        Prime(arr[i]);
    }
    return 0;
}

int Reverse(int n) {
    int j = 0;
    while (n != 0) {
        j *= 10;
        j += n % 10;
        n /= 10;
    }
    return j;
}

void Prime(int n) {
    int j = Reverse(n);
    int count = 0;


    for (int i = 1; i <= j; i++) {
        if (j % i == 0) {
            count++;
        }
    }


    if (count == 2) {
        printf("%d ", n);
    }
}

<실행결과>

 

오늘 포스트에서 주의 깊게 보셔야 하는 부분은 소수를 찾는 함수보다도, 입력 받은 숫자를 뒤집는 함수입니다! 

이 점에 유의하셔서 함수를 분석(?) 해보시길 권장드립니다!

그러면 오늘도 모두들 코딩 아티스트가 되는 시간 되시길 바랍니다~