问题标题: 酷町堂:5381 判断素数对&&又一个让我迷惑的操作

0
0
已解决
张恩泽
张恩泽
高级天翼
高级天翼

5381   判断素数对经验值:800

题目描述 Description

给出两个数字x和y,试判断,x后的第一个素数是否是y。

输入描述 Input Description

一行,两个整数,x y

输出描述 Output Description

如果x后面的第一个素数是y,则输出"yes";否则输出"no",并输出正确的素数,用空格隔开

样例输入 Sample Input

【样例输入1】 7 11 【样例输入2】 7 9

样例输出 Sample Output

【样例输出1】 yes 【样例输出2】 no 11

数据范围及提示 Data Size & Hint

2<=x<=y<=50

————————————————————————————————————

今天我看到了一个东西:
首先,酷町侠问的问题居然被酷町猫关闭了,我好像知道了酷町侠的那两条处罚记录是哪来的了......

其次,这个问题的点赞数居然是-5个??我点了一个赞后就变成-4个了

下面的人也都是一样的情况


0
已采纳
王子健
王子健
初级天翼
初级天翼

先是一个让你迷惑的行为解答:以前的酷町侠还不太那啥(你们应该懂的),所以主要还是由酷町猫来承担管理,那个负赞是以前的反对功能,现在已经没有了

 

题目解答:判断质数函数,然后从x+1开始遍历到60左右,找下一个质数,赋值给t,break

Q:为什么要循环到60呢?题目数据范围不是到50吗???

A:因为x可能到50,如果输入50,输出的将会是53,我们只循环到50是不行的

 

出循环判断t是否等于y,等于输出yes,不等于输出no还有一个t

Q:为什么不等于时还要输出t呢???

A:因为题目说了否则输出"no",并输出正确的素数,用空格隔开,现在我们找到的x后面的下一个素数就是t,所以输出t

 

代码:

IsPrime函数部分(相信这你是会的):

主函数:

60可以改成55或54,因为只到53(具体见上面QAQ部分)

 

0
0
禄子墨
禄子墨
初级守护
初级守护

您好

本题有两种解法:

    1. 使用埃氏筛,先从1到50以上(53就行)遍历,筛去非质数,然后从x+1遍历至50以上(53就行),判断如果此数为质数(桶值为false),且等于y,则输出“yes”,并跳出,否则再判断是否为质数,如果是,输出“no”+空格+此数。

    2. 使用函数,从x+1遍历至50以上(53就行),判断如果此数为函数且等于y, 输出“yes”,跳出,否则再判断是否为质数,如果是,输出“no”+空格+此数。

望采纳,谢谢

我要回答