Codeforces Round #538 (Div. 2) C. Trailing Loves (or L'oeufs?) (分解质因数)
题目:http://codeforces.com/problemset/problem/1114/C
题意:给你n,m,让你求n!换算成m进制的末尾0的个数是多少(1<n<1e18 1<m<1e12)
思路:首先我们想一下更简单的一个问题
n!下十进制的末尾0的个数是多少,我们要使末尾出现0,十进制下我们必定是要出现 2*5 或者 1*10才可以,10分成素因子其实也就是2*5,这个时候我们只要数一下1-n里面有多少
2,5因子即可
这个时候我们就能知道我们这题,我们首先求出m的所有素因子,然后分别求出在1-n的出现次数
因为我们要满足出现0,必定是所有素因子出现了一遍才满足出现一次,所以我们求因子出现次数最小的那个即可
#include<set>
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cmath>
#include<map>
#include<vector>
#define mod 1000007
#define maxn 100005
using namespace std;
typedef long long ll;
ll n,m;
int vis[maxn];
vector<ll> mp;
ll suan(ll x){//求出1-n因子的出现次数
ll sum=;
ll z=m;
while(z){
sum+=z/x;
z/=x;
}
return sum;
}
int main(){
cin>>m>>n;
while(n!=){//求出所有的因子
ll t=sqrt((double)n);
ll i=;
for(;i<=t;i++){
if(n%i==){
mp.push_back(i);
n/=i;
break;
}
}
if(i==t+){//剩下因子是素数的情况
mp.push_back(n);
break;
}
}
map<ll,ll> q;
for(int i=;i<mp.size();i++){
if(q[mp[i]]==) q[mp[i]]=suan(mp[i]);
} for(int i=;i<mp.size();i++)
{
if(vis[i]) continue;
int num=;
for(int j=i+;j<mp.size();j++)
{
if(mp[j]==mp[i]){
num++;
vis[j]=;
}
}
q[mp[i]]/=num;//因为素因子相乘里面有重复的,所以我要把出现次数/出现的位置,才能满足每个位置同时出现的正确性
}
ll mn=q[mp[]];
for(int i=;i<mp.size();i++){
mn=min(mn,q[mp[i]]);
}
cout<<mn;
}
Codeforces Round #538 (Div. 2) C. Trailing Loves (or L'oeufs?) (分解质因数)的更多相关文章
- CF#538 C - Trailing Loves (or L'oeufs?) /// 分解质因数
题目大意: 求n!在b进制下末尾有多少个0 https://blog.csdn.net/qq_40679299/article/details/81167283 一个数在十进制下末尾0的个数取决于10 ...
- C. Trailing Loves (or L'oeufs?) (质因数分解)
C. Trailing Loves (or L'oeufs?) 题目传送门 题意: 求n!在b进制下末尾有多少个0? 思路: 类比与5!在10进制下末尾0的个数是看2和5的个数,那么 原题就是看b进行 ...
- Codeforces Round #538 (Div. 2) (A-E题解)
Codeforces Round #538 (Div. 2) 题目链接:https://codeforces.com/contest/1114 A. Got Any Grapes? 题意: 有三个人, ...
- Codeforces Round #538 (Div. 2) (CF1114)
Codeforces Round #538 (Div. 2) (CF1114) 今天昨天晚上的cf打的非常惨(仅代表淮中最低水平 先是一路缓慢地才A掉B,C,然后就开始杠D.于是写出了一个O( ...
- DP Codeforces Round #FF (Div. 1) A. DZY Loves Sequences
题目传送门 /* DP:先用l,r数组记录前缀后缀上升长度,最大值会在三种情况中产生: 1. a[i-1] + 1 < a[i+1],可以改a[i],那么值为l[i-1] + r[i+1] + ...
- Codeforces Round #538 (Div. 2)
目录 Codeforces 1114 A.Got Any Grapes? B.Yet Another Array Partitioning Task C.Trailing Loves (or L'oe ...
- CF#538(div 2) C. Trailing Loves (or L'oeufs?) 【经典数论 n!的素因子分解】
任意门:http://codeforces.com/contest/1114/problem/C C. Trailing Loves (or L'oeufs?) time limit per test ...
- CF 1114 C. Trailing Loves (or L'oeufs?)
C. Trailing Loves (or L'oeufs?) 链接 题意: 问n!化成b进制后,末尾的0的个数. 分析: 考虑十进制的时候怎么求的,类比一下. 十进制转化b进制的过程中是不断mod ...
- Codeforces - 1114C - Trailing Loves (or L'oeufs?) - 简单数论
https://codeforces.com/contest/1114/problem/C 很有趣的一道数论,很明显是要求能组成多少个基数. 可以分解质因数,然后统计各个质因数的个数. 比如8以内,有 ...
随机推荐
- final model for bioinformatics
final model for bioinformatics 模拟真实的生物系统,从有机分子到细胞,到组织,到器官,到个体,到家系,到群体. 正确的设计结构,可拓展性,可塑性. 良好的可视化. 面向对 ...
- pgsql 服务遇见的问题记录
1.安装服务 命令 pg_ctl.exe register -N "pgsql" -D ../data 2.安装后启动失败的解决方式 2.1删除data文件夹下的postmaste ...
- An overnight dance in discotheque CodeForces - 814D (几何)
大意: 给定n个不相交的圆, 求将n个圆划分成两部分, 使得阴影部分面积最大. 贪心, 考虑每个连通块, 最外层大圆分成一部分, 剩余分成一部分一定最优. #include <iostream& ...
- SWUST OJ(1028)
特定字符序列的判断 #include <iostream> #include <cstdlib> #include <stack> #include <str ...
- 按照分层设计理念,完成《XXX需求征集系统》的概念结构设计
按照分层设计理念,完成<XXX需求征集系统>的概念结构设计. 1.概要架构-初步设计 有关<XXX需求征集系统>的鲁棒图如下: 2.概要架构之高层分割 切系统为系统: 高层功能 ...
- PHP类的反射和依赖注入
/** * Class Point */ class Point { public $x; public $y; /** * Point constructor. * @param int $x ho ...
- awk 中的难懂符号解释
awk中NF和NR的意义,其实你已经知道NF和NR的意义了,NF代表的是一个文本文件中一行(一条记录)中的字段个数,NR代表的是这个文本文件的行数(记录数). 看个例子: cal 9 2003 Sep ...
- python小游戏,石头/剪子/布
#从控制台输入石头(1)/剪子(2)/布(3) player=int(input("玩家出拳 石头(1)/剪子(2)/布(3)")) #电脑随机出拳 computer comput ...
- centos7上搭建http服务器以及设置目录访问
参考文献:http://www.jb51.net/article/137596.htm,原文摘抄如下,并根据具体需要作了相应的修改. 步骤: 1. 安装httpd服务 sudo yum install ...
- ASP.NET MVC Display Mode 移动端视图 配置对微信内置浏览器的识别
最近在捣鼓一个稍微有点low的商城网站,没有计划做app却要求有个wap版,而前端又没有做成响应式,时间WTF,直接利用了asp.net mvc的Display Mode Provider. 使用方式 ...