• Trailing Zeroes (I) LightOJ


    题意:

    给出一个N 求N有多少个别的进制的数有后导零

    解析:

    对于一个别的进制的数要转化为10进制 (我们暂且只分析二进制就好啦)

    An * 2^(n-1) + An-1 * 2^(n-2) + ``````+ A1 * 2^1  +  A0 * 2^0  = N

    因为有后导零 我们暂且只看有一个后导零的情况  即A0 = 0

    那么  2 * ( An * 2^(n-2) + An01 * 2^(n-3) + `````` + A1) = N

    即  An * 2^(n-2) + An-1 * 2^(n-3) + `````` + A1  =  N/2

    把2替换为x进制  且 左边设为M

    则 M = N / x

    所以M的个数即为N的因子的个数

    用算术基本定理求因子个数即可

    最后还要减1呀!  

    懒得打代码了。。。。代码原文地址:https://blog.csdn.net/zyz_3_14159/article/details/52824900

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<string>
    using namespace std;
    typedef long long ll;
    bool vis[1000010];
    int prime[1000010],cnt;
    void getprime()
    {
        cnt=0;
        int i,j;
        for(i=2;i<=1000000;i++)
        {
            if(!vis[i])
                prime[cnt++]=i;
            for(j=2*i;j<=1000000;j+=i)
                vis[j]=1;
        }
    }
    ll fun(ll n)
    {
        ll ans=1;
        int num,i;
        for(i=0;i<cnt&&prime[i]*prime[i]<=n;i++)
        {
            if(n%prime[i]==0)
            {
                num=0;
                while(n%prime[i]==0)
                {
                    num++;
                    n/=prime[i];
                }
                ans*=(num+1);
            }
        }
        if(n>1)
            ans*=2;
        return ans-1;
    }
    int main()
    {
        int cas,c;
        ll n;
        getprime();
        scanf("%d",&cas);
        for(c=1;c<=cas;c++)
        {
            scanf("%lld",&n);
            if(n!=1)
            printf("Case %d: %lld
    ",c,fun(n));
            else 
            printf("Case %d: 0
    ",c);
        }
        return 0;
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    php将汉字转换为拼音和得到词语首字母(一)
    json字符串、json对象、数组之间的转换
    nginx配置详解(转)
    layer弹出层效果
    Ajax最详细的参数解析和场景应用
    bootstrap table使用指南
    JS的内置对象
    ThinkPHP导出CSV、Excel
    ThinkPHP的易忽视点小结
    sublime text 删除插件
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/9342230.html
Copyright © 2020-2023  润新知