How many zero's and how many digits ?

来源:互联网 发布:三国杀 姜维 知乎 编辑:程序博客网 时间:2024/06/05 08:31

How many zero's and how many digits ?

大意:

给出一个数字N和进制B,求N!在B进制下,有多少个尾0,有多少位数字;

代码:

#include <stdio.h>#include <string.h>#include <cmath>int flag[1000];int main(){int n, b;while (scanf ("%d %d", &n, &b) != EOF){double leng = 0;for (int i = 2; i <= n; i++) {leng += log10(i);}  leng = leng / log10(b);int y = (int)(leng + 0.000001) + 1;for (int i = 2; i <= n; i++){int factor = i;for (int j = 2; j <= factor && j <= b; j++){while (factor % j == 0){flag[j]++;factor = factor / j; }}}int zm = 0;while (1){int t = b;for (int j = 2; j <= t; j++){while (t % j == 0 && flag[j]){flag[j]--;t = t / j;}}if (t == 1) {zm++;}else {break;}}printf ("%d %d\n", zm, y);memset(flag, 0, sizeof (flag));}}






0 0
原创粉丝点击