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;
    }

  • 相关阅读:
    IOS调试问题集
    sql常用语句及日期格式
    事件的简单面试题
    首博
    T-SQL查询进阶--详解公用表表达式(CTE)
    c++分布式计算类库
    MSSQL on Linux
    使用supervisor实现.NET Core程序后台运行
    CentOS下安装Nginx并安装服务实现自启动
    macOS安装MongoDB
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/3971469.html
Copyright © 2011-2022 走看看