zoukankan      html  css  js  c++  java
  • 南阳理工ACM(题目56)

    描述

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

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

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

    15

    参考题解ac:

    #include <stdio.h>
    int main(void)
    {
    int N,n,m,count;
    scanf("%d",&N);
    while(N--)
    { count=0;
    scanf("%d%d",&n,&m);
    while(n)
    {
    n=n/m;
    count=count+n;
    }
    printf("%d ",count);
    }
    return 0;
    }


    最优参考:

     
    #include<iostream>
    using namespace std;
    int get(int n,int num)
    {
    if(n==0) return 0;
    else return get(n/num,num)+n/num;
    }
    int main()
    {
    int n;
    cin>>n;
    while(n--)
    {
    int a,b;
    cin>>a>>b;
    cout<<get(a,b)<<endl;
    }
    }        


    较差方案ac:

    #include <stdio.h>
    int main()
    {
    int N;
    scanf("%d",&N);
    while(N--)
    {
      int m,n,i,j,count=0;
      scanf("%d%d",&m,&n);
      for(i=2;i<=m;i++)
      {
      j=i;
        while(j)
        {
        if(j%n==0)
        {
        count++;
        j=j/n;
       }
       else
       break;
        }
      }
      printf("%d ",count);             //不添加换行就WR,也不知道为啥?
    }
     return 0;
    }

  • 相关阅读:
    1065-两路合并
    1064-快速排序
    1063-冒泡排序
    1062-直接插入排序
    1061-简单选择排序
    1058-Tom and Jerry
    关于WinForm引用WPF窗体
    ref与out的区别
    看到他我一下子就悟了(续)---委托
    域名的a记录转过来他的公网ip
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258752.html
Copyright © 2011-2022 走看看