본문 바로가기

cospro2급/cospro_2차

2021-05-11

cospro 2급 8번 문제

소수의 갯수 구하기

 

문제 설명

자연수의 각 자릿수 중에서 소수는 몇 개인지 구하려 한다.

즉, 자연수를 각 자릿수별로 나눴을 때, 2, 3, 5, 7이 몇개 있는지 구하려 한다.

 

예를 들어 자연수가 29022531일 때, 각 자릿수 중 소수의 위치는 다음과 같다.

   '2' 90 '2' '2' '5' '3' 1

따라서 소수의 개수는 총 5개이다.

자연수 number가 매개변수로 주어질 때, number의 각 자릿수 중 소수는 몇개인지 return하도록 solution 함수를 완성한다.

 

매개변수 설명

자연수 number가 solution 함수의 매개변수로 주어진다.

   number는 1 이상 1000000000 이하의 자연수이다.

 

return 값 설명

number의 각 자릿수 중 소수는 몇개인지 return 한다.

 

예시

 

코드설명

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int number) {
    int count = 0;	//소수의 갯수 
    while(number > 0){
        int n = number % 10; 	//number의 자릿수 구하기
        if (n == 2 || n == 3 || n == 5 || n == 7) 
            count += 1;
        number /= 10;	//다음 자릿수로 넘어가기(오른쪽에서 왼쪽)
    }
    return count;
}

int main() {
    int number = 29022531;
    int ret = solution(number);

    printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}

while문을 실행할 때 number >= 0으로 주게 되면 number가 0인 경우에도 실행하게 된다. 0인 경우에도 실행할 경우 number=0일 때 number /=0을 실행하면 계속해서 0이 나오기 때문에 무한루프가 된다. 무한루프를 도는 프로그램은 프로그램이 아니기 때문에 주의해서 풀어야한다. 

 

 

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

'cospro2급 > cospro_2차' 카테고리의 다른 글

2021-05-12  (0) 2021.05.12
2021-05-12  (0) 2021.05.12
2021-05-11  (0) 2021.05.11
2021-05-10  (0) 2021.05.10
2021-05-10  (0) 2021.05.10