zoukankan      html  css  js  c++  java
  • 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);
    }

    }

  • 相关阅读:
    第一阶段冲刺 第三天
    第一阶段冲刺 第二天
    第一阶段冲刺 第一天
    第十周进度表
    第九周进度表
    NABCD需求分析
    典型用户和场景分析
    第一个冲刺周期-第一天
    第十周进度表
    团队电梯演讲视频链接
  • 原文地址:https://www.cnblogs.com/2014acm/p/3901469.html
Copyright © 2011-2022 走看看