题目: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?) (分解质因数)的更多相关文章

  1. CF#538 C - Trailing Loves (or L'oeufs?) /// 分解质因数

    题目大意: 求n!在b进制下末尾有多少个0 https://blog.csdn.net/qq_40679299/article/details/81167283 一个数在十进制下末尾0的个数取决于10 ...

  2. C. Trailing Loves (or L'oeufs?) (质因数分解)

    C. Trailing Loves (or L'oeufs?) 题目传送门 题意: 求n!在b进制下末尾有多少个0? 思路: 类比与5!在10进制下末尾0的个数是看2和5的个数,那么 原题就是看b进行 ...

  3. Codeforces Round #538 (Div. 2) (A-E题解)

    Codeforces Round #538 (Div. 2) 题目链接:https://codeforces.com/contest/1114 A. Got Any Grapes? 题意: 有三个人, ...

  4. Codeforces Round #538 (Div. 2) (CF1114)

    Codeforces Round #538 (Div. 2) (CF1114)   今天昨天晚上的cf打的非常惨(仅代表淮中最低水平   先是一路缓慢地才A掉B,C,然后就开始杠D.于是写出了一个O( ...

  5. 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] + ...

  6. Codeforces Round #538 (Div. 2)

    目录 Codeforces 1114 A.Got Any Grapes? B.Yet Another Array Partitioning Task C.Trailing Loves (or L'oe ...

  7. 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 ...

  8. CF 1114 C. Trailing Loves (or L'oeufs?)

    C. Trailing Loves (or L'oeufs?) 链接 题意: 问n!化成b进制后,末尾的0的个数. 分析: 考虑十进制的时候怎么求的,类比一下. 十进制转化b进制的过程中是不断mod ...

  9. Codeforces - 1114C - Trailing Loves (or L'oeufs?) - 简单数论

    https://codeforces.com/contest/1114/problem/C 很有趣的一道数论,很明显是要求能组成多少个基数. 可以分解质因数,然后统计各个质因数的个数. 比如8以内,有 ...

随机推荐

  1. hadoop搭建笔记(一)

    环境:mac/linux hadoop版本:3.1.1 安装特性:非HA 准备: 1. jdk8以上 2. ssh 3. 下载hadoop安装包 配置文件,这里都只有简易配置: 1. core-sit ...

  2. 关于git的诞生

    看了某某大佬的Git教程,简单易懂的同时,也让我对Git有了进一步的了解.搞半天,我们顶礼膜拜的分布式版本控制系统Git,是在这样的情况下产生的. linus在创建开源的linux系统的时候,并不是他 ...

  3. 使用logstash同步mysql数据到elasticsearch

    下载 logstash tar -zxvf https://artifacts.elastic.co/downloads/logstash/logstash-6.3.2.tar.gz .tar.gz ...

  4. 论文选读二:Multi-Passage Machine Reading Comprehension with Cross-Passage Answer Verification

    论文选读二:Multi-Passage Machine Reading Comprehension with Cross-Passage Answer Verification 目前,阅读理解通常会给出 ...

  5. Intellij IDEA 自动清除无效 import

    打开偏好设置: 输入auto import: 注:想在以后的工程中都自动清除,可以在File中如下图操作:

  6. Ubuntu连网的问题

    Ubuntu一直提示网络offline,disconnection 首先,进入了无线网络,进入属性,允许其他网络用户通过此计算机的Internet连接: 但是虚拟机仍显示网络未连接:(不知道此步骤是不 ...

  7. 从零开始 —— Canvas(一)

    从零开始-Canvas 1.颜色.样式和阴影 属性 a.fillStyle(设置或返回用于填充绘画的颜色.渐变或模式) 语法:context.fillStyle = color(颜色值) | grad ...

  8. v模拟器(华为、H3C)点滴

    华为模拟器:eNSP V100R002C00B500 安装问题: 1)环境为WIN10,64位专业版 2)安装完成后可以打开界面,但是新建一个设备后,打不开,一直不停的#号 3)解决:手工点击Virt ...

  9. java 8 Lambda

    警告: 初学者随笔, 请关闭此网页, 以免浪费你的时间

  10. mybatis-spring和spring版本搭配问题

    所报错误:org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer 匹配的版本(my ...