【ACM】阶乘因式分解(二)

阶乘因式分解(二)

时间限制:3000 ms  |  内存限制:65535 KB

难度:3

描述

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

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

注:^为求幂符号。

 

输入
第一行是一个整数s(0<s<=100),表示测试数据的组数
随后的s行, 每行有两个整数n,m。 
输出
输出m的个数
样例输入
3
100 5
16 2
1000000000  13
样例输出
24
15
83333329
#include <iostream>
using namespace std;

int main(){

    int n;
    int a,b;
    cin>>n;
    while (n--)
    {
        cin>>a>>b;
        int sum = 0;
        while (b <= a)
        {
            sum += a/b;
            a /= b;
        }
        cout<<sum<<endl;
    }

    return 0;
}        

原文地址:https://www.cnblogs.com/lyc94620/p/9941476.html

时间: 2024-10-14 14:32:26

【ACM】阶乘因式分解(二)的相关文章

nyist 70 阶乘因式分解(二)

阶乘因式分解(二) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 给定两个数n,m,其中m是一个素数. 将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m. 注:^为求幂符号.   输入 第一行是一个整数s(0<s<=100),表示测试数据的组数随后的s行, 每行有两个整数n,m.  输出 输出m的个数 样例输入 3 100 5 16 2 1000000000 13 样例输出 24 15 83333329 #include <std

NYOJ 70 阶乘因式分解(二)【数学题】

思路: n=100   m=5 100是由20个5组成的,1~100中是5的倍数的数有 5.10.15.20....100 每十个数有两个 数是5的倍数,所以1~100中5的倍数有20个 , 从这二十个数中各分解出一个5,则有20个5,然后这二十个数变成20.19.18...1 即20的阶乘了相当于变成求20的阶乘能分解多少个m 在1~20中又能分解4个 在往下就不够 5个数了,就结束循环 所以总共能分解24个 难点详解: 为什么舍弃100中其他不是5的倍数的数呢? 题目让我们求5的倍数,那些数

NYOJ 56 阶乘因式分解(一)【数学题】

解释见阶乘因式分解(二) 阶乘因式分解(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 2 100 5 16 2 样例输出 24 15 来源 网络 上传者 苗栋栋 #include<stdio.h>

阶乘因式分解(一)(南阳oj56)

阶乘因式分解(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 2 100 5 16 2 样例输出 24 15 来源 网络 上传者 苗栋栋 #include<stdio.h> int main()

NYOJ 56 阶乘因式分解

阶乘因式分解(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 2 100 5 16 2 样例输出 24 15 代码如下: #include<iostream> using namespace st

阶乘因式分解(一)

阶乘因式分解(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 2 100 5 16 2 样例输出 24 15 my answer:#include<iostream> using namespace

nyist 56 阶乘因式分解(一)

阶乘因式分解(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个m. 输入 第一行是一个整数s(0<s<=100),表示测试数据的组数随后的s行, 每行有两个整数n,m. 输出 输出m的个数. 样例输入 2 100 5 16 2 样例输出 24 15 #include<stdio.h>int main(){ int s1,n,m,s,j,

NYOJ 70 阶乘因式分解(二)

时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 给定两个数n,m,其中m是一个素数. 将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m. 注:^为求幂符号.   输入 第一行是一个整数s(0<s<=100),表示测试数据的组数 随后的s行, 每行有两个整数n,m.  输出 输出m的个数 样例输入 3 100 5 16 2 1000000000 13 样例输出 24 15 83333329 分析: 这道题的关键是效率,找出最有效的算法.(和

ACM 阶乘数位数

描述 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出N!的位数有多少(十进制)? 输入 首行输入n,表示有多少组测试数据(n<10)随后n行每行输入一组测试数据 N( 0 < N < 1000000 ) 输出 对于每个数N,输出N!的(十进制)位数. 样例输入 3 1 3 32000 样例输出 1 1 130271 /* NYOJ69 阶乘数位长度 * 方法一: * 可设想n!的结果是不大于10的M次幂的数,即n!<=1