news 2026/9/30 7:18:38

阶乘【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
阶乘【牛客tracker 每日一题】

阶乘

时间限制:1 秒
空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!


题目描述

给定一个正整数p pp。

求一个最小的正整数n nn,使得n ! n!n!是p pp的倍数。


输入描述


输出描述

输出T TT行,对于每组测试数据输出满足条件的最小的n nn。


示例 1

输入:

4 1 2 4 8

输出:

1 2 4 4

备注

T ≤ 10 3 , p ≤ 10 9 T \le 10^3,\quad p \le 10^9T≤103,p≤109


数据范围与提示

解题思路

本题是**质因数分解 + 勒让德公式(阶乘中质因子指数)**的经典问题。给定正整数p pp,要求最小的n nn使得n ! n!n!是p pp的倍数,即p ∣ n ! p \mid n!p∣n!。这等价于对p pp的每个质因子q qq,n ! n!n!中q qq的指数不少于p pp中q qq的指数。因此可以先分解p pp,再对每个质因子求出满足条件的最小n nn,最后取最大值。

1. 问题等价转化
2. 算法实现
  1. 读入测试组数T TT。
  2. 对于每组数据,读入p pp,初始化答案ans = 1,令t = p。
  3. 从b = 2 b = 2b=2开始枚举到t \sqrt{t}t​:
    • 若t % b == 0,统计b bb的指数e,并不断t /= b。
    • 计算满足v b ( n ! ) ≥ e v_b(n!) \ge evb​(n!)≥e的最小n nn:
      • 初始化x = 0,c = 0。
      • 当c < e时,令x = (x / b + 1) * b(即下一个b bb的倍数)。
      • 计算当前x中b bb的因子个数,累加到c。
      • 循环结束时x即为满足该质因子的最小n nn。
    • 更新ans = max(ans, x)。
  4. 循环结束后,若t > 1,说明剩余一个质数,其指数为1 11,对应最小n nn为t,更新ans = max(ans, t)。
  5. 输出ans。
3. 复杂度分析

总结

通过将p pp分解质因数,把问题转化为对每个质因子求最小的n nn使得n ! n!n!中该质因子的指数达标。利用逐个累加质因子指数的方法,避免了二分查找,实现简单且高效。最终取所有质因子对应n nn的最大值即为答案。

代码简要说明

代码内容

#include<bits/stdc++.h>usingnamespacestd;#defineendl'\n'typedeflonglongll;typedefunsignedlonglongull;typedefvector<vector<ll>>vvt;typedefpair<ll,ll>pll;constll N=1e3+10;constll INF=1e18;constll M=1e6+10;constll mod=1e9+7;voidS(){ll p;cin>>p;ll r=1;ll t=p;for(ll b=2;b*b<=t;b++){if(t%b==0){ll e=0;while(t%b==0){e++;t/=b;}ll x=0;ll c=0;while(c<e){x=(x/b+1)*b;ll v=x;while(v%b==0){c++;v/=b;}}r=max(r,x);}}if(t>1)r=max(r,t);cout<<r<<endl;}intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);intT;cin>>T;while(T--)S();return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 7:17:19

Android 12.0 SystemUI中禁止显示自动旋转浮窗按钮

1.前言 在12.0的systemui系统开发中,在某些时候systemui 会在旋转屏幕的时候,出现一个旋转图标跟着屏幕一起旋转,开发功能需要去掉这个旋转浮窗,解下来分析实现这个功能 2.SystemUI中禁止显示自动旋转浮窗按钮核心类 vendor/mediatek/proprietary/packages/apps/SystemUI/…

作者头像 李华
网站建设 2026/9/30 7:16:45

机器学习之数据清洗(Machine Learning about Data Cleaning)

一、数据清洗1、基础知识1.1 数据清洗的用途爬虫获取的原始数据往往存在各种问题&#xff1a;HTML标签残余空格换行不一致编码混乱格式不一致有缺失值这些问题如果不解决&#xff0c;将会影响后续的数据分析与挖掘工作。数据清洗是整个爬虫项目不可或缺的一环&#xff0c;其决定…

作者头像 李华
网站建设 2026/9/30 7:16:42

小白程序员快速入门大模型:从理论到产业落地的实战指南

本文分析了AI在大模型产业落地中的误区&#xff0c;指出“重技术、轻业务”是项目失败的主因。文章强调AI不是万能药&#xff0c;业务流程和数据质量至关重要。十五五规划中&#xff0c;“人工智能”的核心是赋能实体经济&#xff0c;而非盲目自研大模型。企业应优先选择成熟技…

作者头像 李华