重複の可能性:
階乗に起因する数値の後続ゼロのカウント
整数「p」が与えられます。「n階乗」の最後に「p」の数がゼロである数「n」を見つけなければなりません。これが私が考えた解決策ですが、それがこの問題の解決策であるかどうかはわかりません。階乗を計算する関数とゼロを取得する別の関数を作成する必要がありますか?
int p;
int count5=0;
int i;
int copy_i;
printf("Enter p: ");
scanf("%d",&p);
for(i=1; ;i++)
{
copy_i=i;
while(copy_i/5)
{
if(copy_i%5==0)
{
count5++;
copy_i=copy_i/5;
}
else
{
break;
}
}
if(count5==p)
{
printf("The minimum number n is: %d.",i);
break;
}
else if(count5>p)
{
printf("No match for n! with %d zero.",p);
break;
}
}