牛客网Wannafly挑战赛25|牛客网Wannafly挑战赛25 A题
题目大意
题目链接
给你n,p两个数,求n的阶乘中p做为因子出现的个数
分析
如果p为质数的话,很容易求出p出现的次数,但是这道题p可能为合数,由数学知识可以知道任意一个数都可以通过质数相乘来得到,所以我就将p分解为多个质数来相乘,同时求出相应的质数在n的阶乘中出现的次数a,同时我也要求出质数在p中出现的次数b(一个质数可以出现多次),最后的结果就是多个质数的a/b值的最小值。
代码
#include
#include
#define INF 0x3f3f3f3f3f3f3f3f
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int MAX_N=10002;
bool prime[MAX_N];
void getprime()
{
memset(prime,true,sizeof(prime));
prime[0]=false;
prime[1]=false;
for(int i=2;
i>n>>p;
ull result=INF;
for(int i=1;
i<=p;
i++)
{
if(prime[i]&&p%i==0)
{
int mid=p;
int cnt=0;
while(mid%i==0)
{
mid=mid/i;
cnt++;
}
ull res1=number(n,i);
res1=res1/cnt;
result=min(result,res1);
}
}
cout<
【牛客网Wannafly挑战赛25|牛客网Wannafly挑战赛25 A题】总结
要明白这道题的思维过程,并能举一反三,求类似这样的问题。同时开数组的时候要注意0的个数。如果题目中要多次用到素数,那么就采用打表的方式一次求出所有的素数(埃氏筛选法则)。
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 猎杀IP
- 自媒体形势分析
- 数学大作战
- 使用协程爬取网页,计算网页数据大小
- 【亲测好用】高逼格配色网站推荐
- 2018.03.18
- 星期天的下午茶(一)
- 很多网红在用的素颜霜,你知道它是属于护肤品还是化妆品吗()
- 08黑龙江迟淑荣弯柳树网络学院第五期学习赵宗瑞老师主讲的(传统文化与身心健康)教育体系心得体会