初级天翼
这个在天梯里太烦了
1062 寻找质因数
题目描述 Description
为了迎接国庆,信息学兴趣小组的同学在辅导老师的带领下,举办了一个盛大的晚会,晚会的第一项内容是做游戏:寻找质因数。老师会让若干个同学来回答问题,每次被提问的同学会拿到一张卡片,卡片上有N个数,他们的任务是求出N个数中质因数最大的数字。对于答对的同学,老师会派发一份精美的礼品。
输入描述 Input Description
第一行,一个整数N,表示数字个数。
接下来N行,每行一个整数Ai,表示给出的数字。
N <= 5000 , Ai <= 20000
输出描述 Output Description
一个整数,表示质因数最大的数字。
样例输入 Sample Input
4
36
38
40
42
样例输出 Sample Output
38
数据来源 Source
包河区2015年信息学竞赛第二题
许金夫在2019-09-19 23:04:26追加了内容
快点呀
许金夫在2020-03-10 20:55:46追加了内容
来结个贴
中级天翼
你先定义一个求是不是质数的函数
然后在main函数里循环n次
输入一个数
假设输入变量名为tmp
然后循环sqrt(tmp)次
如果tmp%j==0&&tmp/j是质数
则tmp/j就是tmp的最大质因数
然后就可以求最大
最后输出并提交
望采纳!!!
高级光能
我们老师讲了这题,但是我讲不好,也不能直接告诉你代码
你看一下我们的课吧:https://course.codingtang.com/#/weiplayVideo?id=11384&s=1c4de2e24856daa68d47a06399c607d8
希望老师讲的你能明白
资深光能
著名的埃埃氏筛法:
程序思路
要通过埃氏筛法找到小于或等于给定整数n的所有素数大致需要以下几步:
1、创建从2到n的连续整数列表:(2,3,4,...,n);
2、将p设定为最小的素数2;
3、在整数n的范围内,从2p开始列举p的倍数,并将其一一标记(即2p、3p……,值得注意的是p本身不应被标记);
4、在列表中寻找未被标记的最小的大于p的整数,令其为新的p并重复第3步,若列表中没有符合条件的数字则算法停止;
5、算法停止时,列表内未被标记的数字即为n以内的素数。
该算法的主要思想是每一次选取的p都是素数,因为如果它是可分解的则将会被标记为其它一些较小素数的倍数。但是,在以上算法实现过程中我们可以发现某些数字会被标记多次(例如,15将被3和5标记)。针对该问题,主要有两种改进办法:
1、在第3步中,我们完全可以从p的平方开始标记,而不用从2p开始,因为某一些点已经在较小的素数时被标记过了(例如,2p已经被2标记过了)。这样的改进也就是说在第4步中如果判定p的平方大于n时就可以选取下一个p了。
2、另一种方法是在第一种改进方法的基础上,我们在构造整数列表是就只选取n以内的奇数(除1以外)。
在本算法中,作者采用的就是第二种改进方法下的埃氏筛法。
ps:我可不太懂,搜了一下出来的,你应该是懂得
张岳恒在2020-03-11 13:41:16追加了内容
哎呀呀,好像不太对,楼上好像说的很好,大家可别举报我