zoukankan      html  css  js  c++  java
  • 难度2:阶乘因式分解(一)

    阶乘因式分解(一)
    难度:2

    描述:

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

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

    输入:
    第一行是一个整数s(0<s<=100),表示测试数据的组数
    随后的s行, 每行有两个整数n,m。

    输出:
    输出m的个数。

    样例输入:
    2
    100 5
    16 2

    样例输出:
    24
    15

    -------------------------------------------------------------分界线------------------------------------------------------------------------

    思路分析:

       1)题目要求将n(0<=n<=10000)的阶乘分解质因数,求其中有多少个素数m(ps:一看到阶乘还是最多10000的阶乘,我就绝望的一批,最后我想了下,数据量太大了,可否有其他的方法?)

       2)所谓分解质因数就是指把一个合数分解成若干个质因数的乘积的形式,即求质因数的过程叫做分解质因数。举个例子,56的分解质因数是2*2*2*7,注意只有合数才可以分解质因数,合数就是与素数相对的,除了1和其本身能整除外,还能被其他数整除。

       3(好了,不扯这些概念性的问题了,emmmmm,在网上看到很多种解决办法,这种办法是我觉得最容易理解的办法)假设有100个数,5的倍数有5,10,15,20.....95,100共有20个,这20个数又有4个5的倍数,而剩下的4个就没有其他5的倍数了。所以可以通过以下代码实现整个程序。

    --------------------------------------------------------------还是分界线--------------------------------------------------------------------

     

     1 #include<iostream>
     2 using namespace std;
     3 int main()
     4 {
     5    int s,n,m;
     6    cin>>s;
     7    while(s--)
     8   {
     9      cin>>n>>m;
    10      int sum=0;
    11      while(n)
    12      {
    13         sum+=n/m;
    14         n=n/m;
    15       }
    16      cout<<sum<<endl;
    17     }
    18     return 0;
    19 }

     

    好了,很简单吧~

     

     

  • 相关阅读:
    第四章 变量的三大特征,垃圾回收机制,可变类型和不可变类型的简单表述
    第三章 有关变量的理解
    第二章 编程语言的分类及优缺点的分析
    IIS拓展访问的文件格式
    JS之HTTP请求
    HTTP请求
    HtmlAgilityPack解析html
    支付宝支付功能开发
    Web.config配置ActiveReports
    数据库连接字符串
  • 原文地址:https://www.cnblogs.com/Dark-King/p/8029527.html
Copyright © 2011-2022 走看看