~cpp
#include<iostream>
using namespace std;
struct info_number
{
int zero_count;
int total_count;
};
int factorial(int);
void test(int,int,info_number*);
void main()
{
int number,result_number,radix;
info_number temp;
cout<<"팩토리얼을 구할 수와 진수를 차례대로 입력해주세요";
cin>>number>>radix;
result_number=factorial(number);
test(result_number,radix,&temp);
cout<<"0의 갯수와 숫자의 갯수를 차례대로 출력합니다.\n";
cout<<temp.zero_count<<","<<temp.total_count;
cout<<endl;
}
int factorial (int n)
{
if(n>1)
return n*factorial(n-1);
else
return 1;
}
void test(int n,int radix,info_number* temp)
{
int zero_count=0;
int total_count=1;
while(n>radix)
{
if(n%radix==0)
zero_count++;
n = n/radix;
total_count++;
}
(*temp).total_count=total_count;
(*temp).zero_count=zero_count;
}