阶乘因式分解(找出数n的阶乘中含有几个素数m)

来源:互联网 发布:网店管家源码 编辑:程序博客网 时间:2024/05/08 22:14

                 做这题关键看想法,我作为一个喜欢偷懒的人来说,根本没想直接求阶乘去算,我简单举了几个例子,想要发现其中规律,结果还真让我碰上了,在一个数n的范围内,用n/m来表示这个范围有几个m的倍数,并连续加上,在n的范围内n对所有m的倍数商,就得出了想要的答案,并连续解决了大数的阶乘所含素数。。。偷笑

     

阶乘因式分解(二)

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述

给定两个数n,m,其中m是一个素数。

将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m。

注:^为求幂符号。

 

输入
第一行是一个整数s(0<s<=100),表示测试数据的组数
随后的s行, 每行有两个整数n,m。 
输出
输出m的个数
样例输入
3100 516 21000000000  13
样例输出
241583333329
#include<stdio.h>int main(){    int n;    scanf("%d",&n);    while(n--)    {        int m,t;        scanf("%d %d",&m,&t);        int w=0;            while(m)            {  m/=t;                w+=m;            }            printf("%d\n",w);    }    return 0;}

0 0