uva10780 - Again Prime? No time

uva10780 - Again Prime? No time

 

 

Again Prime? No time.


The problem statement is very easy. Given a number n you have to determine the largest power of m, not necessarily prime, that divides n!.

   

Input

The input file consists of several test cases. The first line in the file is the number of cases to handle. The following lines are the cases each of which contains two integers m (1 and n (0. The integers are separated by an space. There will be no invalid cases given and there are not more that 500 test cases.

Output

   

For each case in the input, print the case number and result in separate lines. The result is either an integer if m divides n! or a line "Impossible to divide" (without the quotes). Check the sample input and output format.

   

Sample Input

2
2 10
2 100

Sample Output

Case 1:
8
Case 2:
97

 

题目大意:给定mn,求一个最大正整数k,使得m^k能够被n!整除,变相问n!中有多少个m;

 

思路:开始想到的是从2-n遍历,把每个数中有多少的m都找出来,后来发现缺陷是m不是质数,例如4*96,就找不出有6,实际上应该有两个!正确的解法是分解质因数,然后找出有多少对质因数即可。当然要找的是对于每个质数的最小值.

code:
#include <iostream>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <map>
#include <algorithm>
using namespace std;
const int M=0x7fffffff;
const int N=10010;

bool ft[N];
int prime[N],t=0;
void init() //打素数表
{
memset(ft,true,sizeof(ft));
ft[0]=ft[1]=false;
for (int i=2;i<N;i++)
{
if (!ft[i]) continue;
prime[++t]=i;
for (int j=2*i;j<N;j+=i)
ft[j]=false;
}
}
int main()
{
init();
int T;
int m,n;
int i,j;
scanf("%d",&T);
for (int ca=1;ca<=T;ca++)
{
scanf("%d %d",&m,&n);
int ans=M,p=1;
while (m>1)
{
int ct=0;
while (m%prime[p]==0) //分解素数,从前往后找
{
ct++;
m/=prime[p];
}
if (ct==0){p++; continue;}
if (prime[p]>n){ans=-1; break;}
int nt=0;
for (i=prime[p];i<=n;i*=prime[p])
nt+=n/i;
ans=min(ans,nt/ct); //选出最小的素数比,也就是ans个素数对
}
printf("Case %d:\n",ca);
if (ans==-1) cout<<"Impossible to divide"<<endl;
else cout<<ans<<endl;
}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/382039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

303. 区域和检索 - 数组不可变

303. 区域和检索 - 数组不可变 给定一个整数数组 nums&#xff0c;求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和&#xff0c;包含 i, j 两点。 示例&#xff1a; 给定 nums [-2, 0, 3, -5, 2, -1]&#xff0c;求和函数为 sumRange() sumRange(0, 2) -> 1 sumRange…

【转载】最短路径之Dijkstra算法详细讲解

&#xff11; 最短路径算法 在日常生活中&#xff0c;我们如果需要常常往返A地区和B地区之间&#xff0c;我们最希望知道的可能是从A地区到B地区间的众多路径中&#xff0c;那一条路径的路途最短。最短路径问题是图论研究中的一个经典算法问题&#xff0c; 旨在寻找图&#xf…

Intelij 添加php注释

没有methodParameters()) groovyScript("def result; def params\"${_1}\".replaceAll([\\\\[|\\\\]|\\\\s], ).split(,).toList(); for(i 0; i < params.size(); i) {result * param params[i] ((i < params.size() - 1) ? \\n:)}; return result…

HDU 2544 最短路(各种最短路算法的实现)

链接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid2544 题目&#xff1a; Problem Description 在每年的校赛里&#xff0c;所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候&#xff0c;却是非常累的…

为什么LeetCode过一段时间又不会了

怎么从这个迷宫的左上角走到右下角&#xff1f; 看起来好像很简单&#xff0c;花时间还是可以找得到答案。 看了答案之后可以很清楚&#xff0c;这是正解。 只有一个问题&#xff1a; 我怎么就没立刻想到&#xff1f; 当在看题解或者听别人讲授思路的时候&#xff0c;你就是…

148. 排序链表

148. 排序链表 给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [4,2,1,3] 输出&#xff1a;[1,2,3,4] 示例 2&#xff1a; 输入&#xff1a;head [-1,5,3,4,0] 输出&#xff1a;[-1,0,3,4,5] 示…

POJ 3660 Cow Contest(传递闭包floyed算法)

Description N (1 ≤ N ≤ 100) cows, conveniently numbered 1..N, are participating in a programming contest. As we all know, some cows code better than others. Each cow has a certain constant skill rating that is unique among the competitors. The contest is…

23. 合并K个升序链表

23. 合并K个升序链表 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 示例 1&#xff1a; 输入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 输出&#xff1a;[1,1,2,3,4,4,5,6] 解释&#xf…

HDU 1874 畅通工程续 (Dijkstra , Floyd , SPFA, Bellman_Ford 四种算法)

畅通工程续 题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1874 Problem Description 某省自从实行了很多年的畅通工程计划后&#xff0c;终于修建了很多路。不过路多了也不好&#xff0c;每次要从一个城镇到另一个城镇时&#xff0c;都有许多种道路方案可以…

训练指南——数学专题一的总结

差不多一个星期过去了&#xff0c;在这一个多星期里&#xff0c;我做了一个数学专题和两场训练赛&#xff0c;要说对自己的感觉&#xff0c;只能说很差劲&#xff0c;开始的时候以为环境会比现在宽松很多&#xff0c;后来才发现想法是错误的&#xff0c;实验室室里室一种紧张的…

micro/protoc-gen-micro 不见了

别挣扎了&#xff0c;这个项目被官方删了。换别的用吧 别挣扎了&#xff0c;这个项目被官方删了。换别的用吧 别挣扎了&#xff0c;这个项目被官方删了。换别的用吧 别挣扎了&#xff0c;这个项目被官方删了。换别的用吧

关于第二次训练赛

第二次训练赛甚至比第一次还要差&#xff0c;开始做的时候&#xff0c;因为在调并查集的题目&#xff0c;一时忘了比赛开始时间&#xff0c;这又导致了在开始便就输在了起跑线上&#xff0c;接下来看A&#xff0c;20分钟后想到了BFS&#xff0c;不过和p商量后&#xff0c;发现他…

一步获取LeetCode的cookies

登录LeetCode 获取登陆的cookies 浏览器F12。console输入 javascript:document.cookie 打完收工 字数不够csdn不发布 字数不够csdn不发布 字数不够csdn不发布 字数不够csdn不发布 字数不够csdn不发布 字数不够csdn不发布 字数不够csdn不发布 字数不够csdn不发布

HDU2066:一个人的旅行

Problem Description虽然草儿是个路痴&#xff08;就是在杭电待了一年多&#xff0c;居然还会在校园里迷路的人&#xff0c;汗~),但是草儿仍然很喜欢旅行&#xff0c;因为在旅途中 会遇见很多人&#xff08;白马王子&#xff0c;^0^&#xff09;&#xff0c;很多事&#xff0c;…

win11 vmware 安装Ubuntu 连接xshell

安装 open ssh&#xff1a; sudo apt-get install openssh-server 修改root密码 #sudo passwd root 辑配置文件&#xff0c;允许以 root 用户通过 ssh 登录&#xff1a; sudo vi /etc/ssh/sshd_config 找到&#xff1a;PermitRootLogin prohibit-password禁用 添加&…

链表面试大全

链表面试 血与泪的教训是&#xff0c;必须要全部手写&#xff0c;而且要熟练。 面试的时间本来就短&#xff0c;到~到 到时 ~ 到时候 一 一 一张紧&#xff0c;就更做不出来了 第一题 链表相加 2. 两数相加 141. 环形链表 golang 160. 相交链表 206. 反转链表 237. 删除链表中…

送东阳马生序

余幼时即嗜学。家贫&#xff0c;无从致书以观&#xff0c;每假借于藏书之家&#xff0c;手自笔录&#xff0c;计日以还。天大寒&#xff0c;砚冰坚&#xff0c;手指不可屈伸&#xff0c;弗之怠。录毕&#xff0c;走送之&#xff0c;不敢稍逾约。以是人多以书假余&#xff0c;余…

hdu 2112 ——HDU Today

Problem Description 经过锦囊相助&#xff0c;海东集团终于度过了危机&#xff0c;从此&#xff0c;HDU的发展就一直顺风顺水&#xff0c;到了2050年&#xff0c;集团已经相当规模了&#xff0c;据说进入了钱江肉丝经济开发区500强。这时候&#xff0c;XHD夫妇也退居了二线&am…

vim如何自动补全,ycm配置

vimplus已经很完善了&#xff0c;现在安装已经很容易了。 git clone https://github.com/chxuan/vimplus.git ~/.vimplus cd ~/.vimplus ./install.sh Ubuntu配置vim 更新2018年11月8号 用了一段时间的Ubuntu 18简直太方便了。 三步操作全部配完&#xff01;&#xff01;&a…

快速幂取模算法模板

在Miller Rabbin测试素数&#xff0c;就用到了快速幂取模的思想。这里总结下。求a^b%c&#xff08;这就是著名的RSA公钥的加密方法&#xff09;&#xff0c;当a,b很大时&#xff0c;直接求解这个问题不太可能 算法1&#xff1a;利用公式a*b%c((a%c)*b)%c,这样每一步都进行这种处…