UVA10780幂和阶乘
题意:
输入两个整数n,m(1<m<5000,0<n<10000)求最小的k使得m^k是n!的因子。
思路:
比较容易想,一开始手残wa了好几次,我们直接求出m和n!的素数因子和个数就行了,假如s1[a]表示的是n!的素数因子a的个数,s2是m的,则Ans=min(Ans ,s1[a]/s2[a]);这个应该不用解释,很好理解吧!
#include<stdio.h>
#include<string.h>
int Pri[11000] ,pt;
int mark[11000];
int s1[11000] ,s2[11000];
void DBPri()
{
memset(mark ,0 ,sizeof(mark));
mark[1] = 1;
pt = 0;
for(int i = 2 ;i <= 10000 ;i ++)
{
if(!mark[i])
{
Pri[++pt] = i;
for(int j = i + i ;j <= 10000 ;j += i)
mark[j] = 1;
}
}
}
int main ()
{
DBPri();
int t ,cas = 1 ,i ,j ,n ,m;
scanf("%d" ,&t);
while(t--)
{
scanf("%d %d" ,&m ,&n);
memset(s1 ,0 ,sizeof(s1));
for(i = 1 ;i <= n ;i ++)
{
int now = i;
for(j = 1 ;Pri[j] <= now && j <= pt ;j ++)
{
while(now % Pri[j] == 0)
{
now /= Pri[j];
s1[Pri[j]] ++;
}
}
}
memset(s2 ,0 ,sizeof(s2));
int mm = m;
for(i = 1 ;Pri[i] <= mm && i <= pt ;i ++)
if(mm % Pri[i] == 0)
{
while(mm % Pri[i] == 0)
{
s2[Pri[i]] ++;
mm /= Pri[i];
}
}
int Ans = 100000;
for(i = 1 ;Pri[i] <= m && i <= pt ;i ++)
if(m % Pri[i] == 0)
{
if(Ans > s1[Pri[i]] / s2[Pri[i]])
Ans = s1[Pri[i]] / s2[Pri[i]];
}
printf("Case %d:\n" ,cas ++);
if(Ans == 0) printf("Impossible to divide\n");
else printf("%d\n" ,Ans);
}
return 0;
}
UVA10780幂和阶乘的更多相关文章
- 2019清明期间qbxt培训qwq
4.4上午:数学基础 (qwq整成word和cpp了,它居然不能直接把文档附上来) part 1:高精度运算 高精加和高精减就不说了,之前写过博客了qwq,讲一讲高精乘和高精除吧. 1.高精度乘法(不 ...
- sequence——强行推式子+组合意义
sequence 考虑长度<=x的方案数F(x),然后(F(x)-F(x-1))*x贡献到答案里 n平方的做法可以直接DP, 感觉有式子可言, 就推出式子:类似coat,每个长度为i的计算i次. ...
- 牛客网 牛客小白月赛1 I.あなたの蛙が帰っています-卡特兰数,组合数阶乘逆元快速幂
I.あなたの蛙が帰っています 链接:https://www.nowcoder.com/acm/contest/85/I来源:牛客网 这个题有点意思,是卡特兰数,自行百度就可以.卡特兰数用处 ...
- 牛客网 Wannafly挑战赛11 B.白兔的式子-组合数阶乘逆元快速幂
链接:https://www.nowcoder.com/acm/contest/73/B来源:牛客网 B.白兔的式子 时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K, ...
- 快速幂的类似问题(51Nod 1008 N的阶乘 mod P)
下面我们来看一个容易让人蒙圈的问题:N的阶乘 mod P. 51Nod 1008 N的阶乘 mod P 看到这个可能有的人会想起快速幂,快速幂是N的M次方 mod P,这里可能你就要说你不会做了,其实 ...
- 【板子】gcd、exgcd、乘法逆元、快速幂、快速乘、筛素数、快速求逆元、组合数
1.gcd int gcd(int a,int b){ return b?gcd(b,a%b):a; } 2.扩展gcd )extend great common divisor ll exgcd(l ...
- N的阶乘末尾0的个数和其二进制表示中最后位1的位置
问题一解法: 我们知道求N的阶乘结果末尾0的个数也就是说我们在从1做到N的乘法的时候里面产生了多少个10, 我们可以这样分解,也就是将从0到N的数分解成因式,再将这些因式相乘,那么里面有多少个 ...
- 组合数(Lucas定理) + 快速幂 --- HDU 5226 Tom and matrix
Tom and matrix Problem's Link: http://acm.hdu.edu.cn/showproblem.php?pid=5226 Mean: 题意很简单,略. analy ...
- 2.2 编程之美--不要被阶乘吓到[zero count of N factorial]
[本文链接] http://www.cnblogs.com/hellogiser/p/zero-count-of-N-factorial.html [题目] 问题1:给定一个整数N,那么N的阶乘N! ...
随机推荐
- 在windows 下查看ip 地址和 在ubundu 下查看IP地址
在windows 下查看ip 地址和 在ubundu 下查看IP地址 1.在windows 下查看 IP地址:ipconfig 2.在 ubundu 下查看IP地址:ifconfig
- 让人头疼的AI bug (随想)
虽然概念上,人工智能和机器学习不等同.但是本文提及的AI,指的是基于机器学习的AI. 一个软件产品,出了错误叫bug,bug需要修.那一个机器学习的模型,准确率在那摆着呢,大伙心知肚明是有一定的犯 ...
- MySql数据库列表数据分页查询、全文检索API零代码实现
数据条件查询和分页 前面文档主要介绍了元数据配置,包括表单定义和表关系管理,以及表单数据的录入,本文主要介绍数据查询和分页在crudapi中的实现. 概要 数据查询API 数据查询主要是指按照输入条件 ...
- 2020年12月-第02阶段-前端基础-CSS字体样式
CSS字体样式属性调试工具 应用 使用css字体样式完成对字体的设置 使用css外观属性给页面元素添加样式 1.font字体 1.1 font-size:大小 作用: font-size属性用于设置字 ...
- python3中post请求 json 数据
post请求 #!/usr/bin/env python # -*- coding:utf-8 -*- import requests import json headers = { "Us ...
- 如何使用excel制作查分系统
在工作学习中,我们经常会遇到使用excel制作查分系统这样的问题.培根说过:读书足以恬情,足以博采,足以长才.因此,面对使用excel制作查分系统我们应该有努力探索的精神.书到用时方恨少,事非经过不知 ...
- VirtualBOX 虚拟机 FreeBSD配置
pkg装virtualbox-ose-additions, 再将 Section "Device"Identifier "Card0"Driver " ...
- slickgrid ( nsunleo-slickgrid ) 1 开篇有益
slickgrid (nsunleo-slickgrid) 1 开篇有益 作为专职的程序猿,自认为是老菜鸟或老民工,以前一直在某浪上写博客,上知天文,下达地理.做了N年的.net,又转Java,从 ...
- Centos7安装maven详情以及配置
一.maven安装: 1.获取maven下载地址: 查询maven最新版本地址:https://maven.apache.org/download.cgi 当前最新版本为maven 3.6.3 ...
- Python—关于Pandas缺失值问题(国内唯一)
获取文中的CSV文件用于代码编程以及文章首发地址,请点击下方超链接 获取CSV,用于编程调试请点这 在本文中,我们将使用Python的Pandas库逐步完成许多不同的数据清理任务.具体而言,我们将重点 ...