株式会社モルフォのチャレンジテストをちょっとやってみた

モルフォって会社のサイトで面白そうな問題を見つけたのでやってみた。

問題はこちら↓

  
非負整数Nの階乗の桁数及び末尾に続く0の数を算出するプログラムを書きなさい。  
プログラムはC言語で記述するものとし、標準入力から非負整数N(0≤N≤10000000)を受けとり、標準出力に桁数及び末尾の0の数をスペース区切りで出力するようにしてください。  
  
ヒント  
 入力  出力  
 0   1 0  
 1   1 0  
 2   1 0  
 5   3 1  
 10  7 2  
 20  19 4  
 50  65 12  
 9959677     65374834 2489916  

多倍長整数の表現と1000万の階乗の計算をどうにかしろって話っぽい。

ちなみにコレができたら選考過程で優遇されるらしい。
勘違いされたら嫌だから書くけど、別にここで働きたいわけじゃないからね。
むしろ翌日の銘柄チェックをしててたまたま見つけただけ。
業績下方修正してたうえに信用銘柄じゃないから監視すらしないレヴェルだったけど。

なにも考えずにテキトーに組んでみたら、重くて話にならなかったわ( ´ー`)y-~~
テキトーといいつつ組むの2時間ぐらいかかったのに。

  
$ time ./a.out 5000  
16326 1249  
  
real    0m4.211s  
user    0m3.348s  
sys 0m0.078s  

5000の階乗で4秒って。
1バイト1桁で表現しちゃまずかった予感。

働きたくないって書いたけど、むしろ働けなかったw
直そうと思ったけど、めんどくさくなったし明日の銘柄チェックもしないといけないし、ニートはそんなにヒマじゃねーんだよっつって終了。

ダメコード