C. Trailing Loves (or L‘oeufs?)(求某个质因子在n的阶乘中的个数 + 思维)

news/2024/11/24 6:22:50/

Problem - C - Codeforces

Aki喜欢数字,尤其是那些带有尾随零的数字。例如,数字9200有两个尾随零。Aki认为数字拥有的尾随零越多,它就越漂亮。

然而,Aki认为,一个数字拥有的尾随零的数量并不是固定的,而是取决于它所表示的基数(进制)。因此,他考虑了一些数字和基数的情况。现在,由于他使用的数字变得相当奇怪,他请求你帮他计算这些数字的美丽度。

给定两个整数n和b(以十进制表示),你的任务是计算n!(n的阶乘)在b进制(以b作为基数)表示下末尾零的个数。

输入 输入仅包含一行,两个整数n和b(1≤n≤1018,2≤b≤1012)。

输出 输出一个整数——n!在b进制表示下末尾零的个数。

Examples

input

Copy

6 9

output

Copy

1

input

Copy

38 11

output

Copy

3

input

Copy

5 2

output

Copy

3

input

Copy

5 10

output

Copy

1

在第一个例子中,6!(十进制)=720(十进制)=880(九进制)。

在第三和第四个例子中,5!(十进制)=120 (十进制)=1111000(二进制)。

如果将数字x表示为b进制基数的d1,d2,…,dk,则x=d1bk−1+d2bk−2+…+dkb0,其中di是整数,且0≤di≤b−1。例如,第一个例子中的数字720可以表示为880(九进制),因为720=8⋅92+8⋅9+0⋅1。

您可以在此处阅读有关进制的更多信息。

题解:
结尾有多少个0,就是n!可以被b整除多少次

但是由于数都很大,整常写肯定不行

那我们把数换一种形式

n! = p1^a1*p2^a2....pk^ak

b = p1^b1*p2^b2*p3^b3....pk^bk

要想被整除

是不是对于n!与b共有的质因子的数目,ai >= bi

得到ci = ai /bi,是不是代表每个质因子最多被除几次,

要想整体都被整除,就应该找到最大的ci

关于求某个质因子在n的阶乘中的个数,板子如下,证明(我也不会)

int get(int n,int x)
{int ans = 0;while(n){ans += n/x;n /= x;}return ans;
}

完整代码

#include <cstdio>
#include <cstring>
#include <algorithm>
#include<iostream>
#include<vector>
#include<set>
#include<map>
#include<cmath>
#include<queue>
using namespace std;
typedef long long ll;
#define int long long
typedef pair<int,int> PII;
int mod = 1e9 + 7;
map<int,int> cnt;
vector<int> pri;
int get(int n,int x)
{int ans = 0;while(n){ans += n/x;n /= x;}return ans;
}
void solve()
{int n,b;cin >> n >> b;for(int i = 2;i*i <= b;i++){if(b%i == 0){pri.push_back(i);while(b%i == 0){cnt[i]++;b /= i;}}} if(b > 1){pri.push_back(b);cnt[b]++;}int ans = 1e18;for(int i = 0;i < pri.size();i++){ans = min(ans,get(n,pri[i])/cnt[pri[i]]);}cout << ans;
}
//5 7 8 9 10signed main()
{
//	ios::sync_with_stdio(0);
//	cin.tie(0);cout.tie(0);int t = 1;
//	cin >> t;while(t--){solve(); }
}


http://www.ppmy.cn/news/53739.html

相关文章

【网络安全】CVE 漏洞分析以及复现

漏洞详情 Shiro 在路径控制的时候&#xff0c;未能对传入的 url 编码进行 decode 解码&#xff0c;导致攻击者可以绕过过滤器&#xff0c;访问被过滤的路径。 漏洞影响版本 Shiro 1.0.0-incubating 对应 Maven Repo 里面也有 环境搭建 这个比 Shiro550、Shiro721 要增加一些…

解决在vue中使用elementUI自定义校验及点击提交不生效问题

前言&#xff1a; 本章讲述的主要是对身份证号码的校验 及 为何校验了但提交不生效问题。 拓展小知识&#xff1a; &#x1f340; 1、身份证号码&#xff08;二代18位身份证&#xff09;的含义&#xff1a; 1️⃣ 1-2位&#xff1a;代表所属省级政府的代码&#xff1b; 2️⃣ 3…

移动端click事件300ms延迟

文章目录 移动端click事件300ms延迟问题原因解决将click事件放在touchstart或touchend中处理禁止双击缩放 移动端click事件300ms延迟 问题 在移动端中&#xff0c;点击屏幕的按钮会产生200~300ms的延迟响应&#xff0c;会导致用户认为页面卡顿问题。 如下&#xff1a; <…

【处理网络难题,还得靠这份网工经验合集】

网络维护&#xff0c;是很多初阶网工必须要做的工作。但说起来容易&#xff0c;做起来难&#xff0c;想要做好这个工作&#xff0c;需要的不仅仅是技术的加持&#xff0c;更多的是经验的积累。 今天&#xff0c;和你分享一份关于一些网络维护过程中一些典型、经典问题的解决方…

搭建微型服务器(node express框架)

目录 一&#xff1a;打包&#xff08;npm run build&#xff09; 二&#xff1a;变成合法的包&#xff08;新建server文件夹&#xff09; 三&#xff1a;一路回车 四&#xff1a;新建服务器主文件 五&#xff1a;编辑server.js 六&#xff1a;node server启动服务器 七&a…

【电商必学】 WhatsApp 全新攻略:什么是交互式消息模板

网购与WhatsApp等社交通讯平台有着密不可分的关系&#xff0c;为什么这么说呢&#xff1f;因为基本上所有的网购的平台都会提供查询、下单方式给客户&#xff0c;而WhatsApp是全世界使用率最高的通讯平台&#xff0c;所以大部分电子商户都会选择WhatsApp Business与电子商务连接…

面了20家大厂,发现这样介绍项目经验,显得项目很牛...

我在刚刚开始面试的时候&#xff0c;也遇到了这个问题&#xff0c;也是我第一个思考的问题&#xff0c;如何介绍自己的项目&#xff0c;既可以比较全面的让面试官了解这个项目&#xff0c;同时&#xff0c;也不会让面试官觉得废话太多。经过这么多的面试&#xff0c;我发现&…

DASFAA 2023|创邻周研博士分享前沿图数据库观点

4月17-20日&#xff0c;2023年第28届高级应用数据库系统国际会议&#xff08;DASFAA2023&#xff09;在天津成功举行。创邻科技CTO周研博士受邀参会&#xff0c;围绕Galaxybase国产高性能图数据库进行精彩分享。 DASFAA 2023由DASFAA指导委员会&#xff08;DASFAA Steering Co…