fork download
  1. #include <iostream>
  2. #include <map>
  3. using namespace std;
  4.  
  5. int main() {
  6. int N=30; // Считаем N!
  7. int _base=16; // 30!=0xd13f6370f96865df5dd54000000
  8. map <int,int> _div; // "массив" делителей
  9. for(int i=2;i<=_base;)if(_base%i==0){_div[i]++;_base/=i;}else{i++;}
  10. // cout<<"DEBUG: _div\n";
  11. // for(auto t:_div)cout<<"DEBUG: "<<t.first<<" : "<<t.second<<"\n";
  12. map <int,int> _cnt; // счетчик делителей
  13. for(int i=2;i<=N;i++){ // смысла в множителе 1 нет
  14. int temp=i;
  15. for(auto j:_div){
  16. while(temp%j.first==0){
  17. temp/=j.first;
  18. _cnt[j.first]++;
  19. }
  20. }
  21. }
  22. // cout<<"DEBUG: _cnt\n";
  23. // for(auto t:_cnt)cout<<"DEBUG: "<<t.first<<" : "<<t.second<<"\n";
  24. int _min,flag=1;
  25. for(auto i:_cnt)if(flag){_min=i.second/_div[i.first];flag=0;}else _min=min(_min,i.second/_div[i.first]);
  26. cout<<"Tail zero "<<_min<<" count";
  27. return 0;
  28. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Tail zero 6 count