博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Trailing Zeroes (I) LightOJ - 1028(唯一分解 因子个数)
阅读量:4556 次
发布时间:2019-06-08

本文共 2203 字,大约阅读时间需要 7 分钟。

Trailing Zeroes (I) 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
#include
#include
#include
#include
#include
#include
#include
#include
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
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\n",++casee,fenjie(n)); } return 0;}

 

转载于:https://www.cnblogs.com/Vampire6/p/11336756.html

你可能感兴趣的文章
【agc028E】High Elements(动态规划,线段树,贪心)
查看>>
DEV中svg图标的使用
查看>>
Codefroces Gym101572 I.Import Spaghetti-有向图跑最小环输出路径(Floyd)
查看>>
有关位运算的操作+二进制状态压缩
查看>>
Eclipse插件 -- 阿里巴巴扫描编码规插件
查看>>
(1.1)学习笔记之mysql体系结构(内存、进程、线程)
查看>>
markdown测试
查看>>
Java-Maven-Runoob:Maven 依赖管理
查看>>
杂项-Log:log4net
查看>>
杂项-Java:EL表达式
查看>>
tarroni music
查看>>
unity 使用RotateAround的使用注意
查看>>
[SDOI2009]HH的项链
查看>>
CodeFirst模式,容易引发数据迁移问题(不建议使用)
查看>>
jquery的colorbox关闭并传递数据到父窗
查看>>
使用Nginx、Keepalived构建文艺负载均衡
查看>>
phpmyadmin 开放远程登录的权限
查看>>
linux安装gcc和gcc-c++
查看>>
qq登陆错误提示
查看>>
bzoj 1192: [HNOI2006]鬼谷子的钱袋 思维 + 二进制
查看>>