zoukankan      html  css  js  c++  java
  • Trailing Zeroes (I) LightOJ

    Trailing Zeroes (I) LightOJ - 1028

    题目链接:https://vjudge.net/problem/LightOJ-1028

    题目:

    We know what a base of a number is and what the properties are. For example, we use decimal number system, where the base is 10 and we use the symbols - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. But in different bases we use different symbols. For example in binary number system we use only 0 and 1. Now in this problem, you are given an integer. You can convert it to any base you want to. But the condition is that if you convert it to any base then the number in that base should have at least one trailing zero that means a zero at the end.

    For example, in decimal number system 2 doesn't have any trailing zero. But if we convert it to binary then 2 becomes (10)2 and it contains a trailing zero. Now you are given this task. You have to find the number of bases where the given number contains at least one trailing zero. You can use any base from two to infinite.


    Input

    Input starts with an integer T (≤ 10000), denoting the number of test cases.

    Each case contains an integer N (1 ≤ N ≤ 1012).

    Output

    For each case, print the case number and the number of possible bases where N contains at least one trailing zero.

    Sample Input

    3

    9

    5

    2

    Sample Output

    Case 1: 2

    Case 2: 1

    Case 3: 1

    Note

    For 9, the possible bases are: 3 and 9. Since in base 3; 9 is represented as 100, and in base 9; 9 is represented as 10. In both bases, 9 contains a trailing zero.

    题意:说给一个10进制数,让你转化成任意进制的数,该数末位为0,有几种方案?

    思路:其实当该十进制数模这个进制时为0时,那么转化后的数最后一位都为能,所以这题相当于就是求有多少个因子,用唯一分解求就行了因子个数为(1+a1)(1+a2)(1+a3)...,a1,a2,a3为质因数的指数,注意因子数要减一,因为1进制无意义的

    //
    // Created by hanyu on 2019/8/11.
    //
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<cstdio>
    #include<vector>
    #include<queue>
    #include<cmath>
    #include<map>
    #include<stack>
    using namespace std;
    const int maxn=1e6+1000;
    typedef long long ll;
    int prime[maxn],isprime[maxn];
    ll len;
    void getp()
    {
        memset(isprime,0,sizeof(isprime));
        for(int i=2;i<maxn;i++)
        {
            if(!isprime[i])
            {
                for(int j=i*2;j<maxn;j+=i)
                {
                    isprime[j]=1;
                }
            }
        }
        for(int i=2;i<maxn;i++)
        {
            if(!isprime[i])
                prime[len++]=i;
        }
    }
    ll fenjie(ll n)
    {
        long long int ans=1;
        for(int i=0;i<len&&prime[i]*prime[i]<=n;i++)
        {
    
            if(n%prime[i]==0)
            {
                int num=0;
                while(n%prime[i]==0)
                {
                    num++;
                    n/=prime[i];
                }
                ans*=(1+num);
                if(n==1)
                    break;
            }
        }
        if(n>1)
            ans*=2;
        return ans-1;
    }
    int main()
    {
        getp();
        int T;
        scanf("%d",&T);
        int casee=0;
        ll n;
        while(T--)
        {
            scanf("%lld",&n);
            printf("Case %d: %lld
    ",++casee,fenjie(n));
        }
        return 0;
    }
  • 相关阅读:
    Gson简要使用笔记
    (一)微信开发环境搭建
    Hibernate 注解 字段不映射的注解
    Hibernate 使用注解后没发现建表
    Hibernate 注意命名与数据库关键字的冲突 处理方法
    struts2不能通过ONGL方式取出request中的Atrribute
    Android 两个Activity进行数据传送 发送
    Android 设置隐式意图
    Android 隐式意图 让用户选择一个浏览器访问网址
    Android 判断是否联网 是否打开上网
  • 原文地址:https://www.cnblogs.com/Vampire6/p/11336756.html
Copyright © 2011-2022 走看看