• 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,i,ii;
    scanf("%d",&s1);
    while(s1--)
    { s=0;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
    { ii=i;
    if(ii%m==0)
    {
    s++; ii=ii/m;

    while(ii%m==0)
    {
    s++; ii=ii/m ;
    }
    }
    }
    printf("%d ",s);
    }
    }


    #include <iostream>
    using namespace std;
    int main()
    {
    int m,n,k,s,sum;
    cin >> s;
    while(s--)
    {
    sum=0;
    cin >> n >> m; //m是素数
    while(n)
    {
    k=n/m;
    sum+=k;
    n=k;
    }
    cout << sum << endl;
    }
    }


    //阶乘因式分解。我以为将n!所有的阶乘数中存在m的多少。
    //原来不是这个意思。
    //题目的意思描述错误。
    //100/5=20 个5
    //20/5=4个5
    //4/5=0个5
    //end
    //统计下20+4+0=24


    ***************************************************

    8*************************************************************************************


    #include <stdio.h>
    int main( )
    {
    int count,n,m,i,ii,t;

    scanf("%d",&t);
    while(t--)
    {
    count=0;
    scanf("%d%d",&n,&m);
    for(i=1;i<=n;i++)
    { ii=i ;
    if(ii%m==0) // 逐个 检验
    {
    count++; // +1
    ii=ii/m; // 新ii 是否 含m的某次方

    while(ii%m==0) // m的某次方
    { count++; ii=ii/m; } //
    }


    }
    printf("%d",count);
    }

    }

  • 相关阅读:
    Using NAT between the vCenter Server system and ESXi/ESX hosts (1010652)
    Zabbix监控windows进程连接数
    CentOS yum [Errno 14] problem making ssl connection CentOs
    httpSecurity
    Nginx
    线程基础知识
    SqlServler
    关于数据库索引
    Https的底层原理
    Synchronized
  • 原文地址:https://www.cnblogs.com/2014acm/p/3901469.html
Copyright © 2020-2023  润新知