Trailing Zeroes (I) LightOJ - 1028(求因子个数)
题意:
给出一个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[];
int prime[],cnt;
void getprime()
{
cnt=;
int i,j;
for(i=;i<=;i++)
{
if(!vis[i])
prime[cnt++]=i;
for(j=*i;j<=;j+=i)
vis[j]=;
}
}
ll fun(ll n)
{
ll ans=;
int num,i;
for(i=;i<cnt&&prime[i]*prime[i]<=n;i++)
{
if(n%prime[i]==)
{
num=;
while(n%prime[i]==)
{
num++;
n/=prime[i];
}
ans*=(num+);
}
}
if(n>)
ans*=;
return ans-;
}
int main()
{
int cas,c;
ll n;
getprime();
scanf("%d",&cas);
for(c=;c<=cas;c++)
{
scanf("%lld",&n);
if(n!=)
printf("Case %d: %lld\n",c,fun(n));
else
printf("Case %d: 0\n",c);
}
return ;
}
Trailing Zeroes (I) LightOJ - 1028(求因子个数)的更多相关文章
- Trailing Zeroes (I) LightOJ - 1028
题意就是给你一个数让你找它的正因子个数(包括自身,不包括1),这个地方用到一个公式,如果不用的话按正常思路来写会TL什么的反正就是不容易写对. 求任意一个大于1的整数的正因子个数 首先任意一个数n,n ...
- LightOj1028 - Trailing Zeroes (I)---求因子个数
题目链接:http://lightoj.com/volume_showproblem.php?problem=1028 题意:给你一个数 n (1<=n<=10^12), 然后我们可以把它 ...
- LightOj 1138 - Trailing Zeroes (III) 阶乘末尾0的个数 & 二分
题目链接:http://lightoj.com/volume_showproblem.php?problem=1138 题意:给你一个数n,然后找个一个最小的数x,使得x!的末尾有n个0:如果没有输出 ...
- 172. Factorial Trailing Zeroes(阶乘中0的个数 数学题)
Given an integer n, return the number of trailing zeroes in n!. Example 1: Input: 3 Output: 0 Explan ...
- POJ 2992 Divisors (求因子个数)
题意:给n和k,求组合C(n,k)的因子个数. 这道题,若一开始先预处理出C[i][j]的大小,再按普通方法枚举2~sqrt(C[i][j])来求解对应的因子个数,会TLE.所以得用别的方法. 在说方 ...
- Trailing Zeroes (III)(lightoj 二分好题)
1138 - Trailing Zeroes (III) PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: ...
- Almost All Divisors(求因子个数及思维)
---恢复内容开始--- We guessed some integer number xx. You are given a list of almost all its divisors. Alm ...
- ✡ leetcode 172. Factorial Trailing Zeroes 阶乘中的结尾0个数--------- java
Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in log ...
- Easy Number Challenge(暴力,求因子个数)
Easy Number Challenge Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I ...
随机推荐
- hdu2795 Billboard(线段树单点修改)
传送门 结点中的l和r表示层数,maxx表示这层最多还剩下多少宽度.根据公告的宽度取找到可以放的那一层 找到后返回层数,并修改maxx #include<bits/stdc++.h> us ...
- 一切的浮点型进行计算操作都要用BigDecimal
简化: 1.引言 float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的.然而,它们没有提供完全精确 ...
- variadic templates & pass by const reference & member operator [] in const map & gcc sucks
/// bugs code with comments #include <iostream> #include <memory> #include <unordered ...
- Python构建web应用(进阶版)->对网页HTML优化逻辑显示
本篇是承接上一篇web应用(入门级)的内容往下顺延的,阅读后将会了解HTML逻辑显示优化,如下图所示,从杂乱无章的日志文件到一个整齐的列表显示. —————————————————————————— ...
- PHP核心技术——异常和错误处理
PHP只有手动抛出异常后才能捕获异常 $a = null; try { $a = 5/0; echo $a,PHP_EOL; } catch (exception $e) { $e -> get ...
- 下一个时代的发展架构竟然是它!FaaaaaaaaS到底是个啥?
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云serverless团队发表于云+社区专栏 导读:2018年7月6 - 7日,一年一度的技术圈盛会ArchSummit全球架构师 ...
- 【深度学习的实用层面】(一)训练,验证,测试集(Train/Dev/Test sets)
在配置训练.验证.和测试数据集的过程中做出正确的决策会更好地创建高效的神经网络,所以需要对这三个名词有一个清晰的认识. 训练集:用来训练模型 验证集:用于调整模型的超参数,验证不同算法,检验哪种算法更 ...
- Leetcode_6. Zigzag convertion
6. Zigzag convertion 对输入的字符串做锯齿形变换,并输出新的字符串,所谓zigzag变化如下图所示. 将"ABCDEFGHIJKL"做4行的锯齿变换,新的字符串 ...
- Appengine直接下载文件并保存到google drive
一直对下载文件比较感兴趣.前些日子无意搜到google 推出一项服务,可以直接将文件下载到google drive中,原型猛戳这里,但有限额限制.一时脑洞大开,可不可以在appengine 上架设服务 ...
- [shell] 脚本之shift和getopts (转载)
转载地址:http://www.361way.com/shell-shift-getopts/4973.html 建议不熟悉getopts的朋友,此篇要看完,getopts部分内容在原作者上面有改动. ...