NEFU 大一寒假训练十(素数筛)题目预测

说明

我又双叒叕来发预测了 ~
本次预测题目数:7,正确性明天检验一下 ヾ(•ω•`)o
预测原理还是基于 这篇文章:NEFU OJ 比赛试题预测 (Python)


Problem:585 最大素因子

MemoryLimit:65536K
TimeLimit:1000ms

Description:

我们都知道每个数都有素数因子,每个数最大的素数因子( largest prime factor )也是一定的。李华对此很感兴趣。最近李华正在研究一个数的最大素数因子是第几
个素数。比如说2的最大素数因子是2,是第一个素数,记为LPF(2) = 1。另外令LPF(1) = 0。
现在给你个n你能帮李华求出来LPF(n)的值么?

Input:

测试数据有多组,每组只有一个整数n(n < 1000000)

Output:

对于每个测试实例,输出LPF(n)的值。

SampleInput:

1
2
3
4
5

SampleOutput:

0
1
2
1
3

Problem:586 纯素数

MemoryLimit:65536K
TimeLimit:1000ms

Description:

李华再次发现有一种素数很奇特,它依次去掉最高位,剩下的仍为素数,例如:1223,3137等数。后来李华查阅资料知道这样的数叫纯素数。
现在给你个5位数你能判断它是不是纯素数呢?

Input:

测试数据有多组,每组只有一个整数N(10000 <= N < 100000)

Output:

对于每个测试实例,若N为纯素数,输出YES,否则输出NO

SampleInput:

13903
10007
42953
13331

SampleOutput:

NO
YES
YES
NO

Problem:587 半素数

MemoryLimit:65536K
TimeLimit:1000ms

Description:

半素数的定义如下:如果一个数能分解成两个素数的乘积那么这个数就称为半素数。例如,6 = 2 * 3,2,3都是素数,那么6就是半素数。12 = 223,不是两个素数的乘
积,所以就不是半素数。
你的任务就是判断一个给定的数是不是半素数。

Input:

有多组测试用例。每个用例只包括一个整数N(2<=N<=10000)

Output:

每个用例输出一行。如果这个数是半素数输出YES否则输出NO。

SampleInput:

3
4
6
12

SampleOutput:

NO
YES
YES
NO

Problem:781 素数与数论

MemoryLimit:65536K
TimeLimit:1000ms

Description:

质数(prime number)又称素数,有无限个。
一个大于1的自然数,如果除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质

数);否则称为合数。
数论是纯粹数学的分支之一,主要研究整数的性质。
而整数的基本元素是素数(也称质数),所以数论的本质是对素数性质的研究。
数论被高斯誉为“数学中的皇冠”。
因此,数学家都喜欢把数论中一些悬而未决的疑难问题,叫做“皇冠上的明珠”,以鼓励人们去“摘取”。

对于一个区间 [x,y] (包括x,y)( 2 < = x < y < = 1000),判定该区间内的素数有多少个。

Input:

输入数据有多组,每组占一行,由两个整数x,y组成。
提示:
while(scanf("%d%d",&x,&y)!=EOF)
{
// 代码
}

Output:

对于每个给定的区间,输出区间内素数的个数。

SampleInput:

123 555
45 756

SampleOutput:

71
119

Problem:825 函数版素数判定

MemoryLimit:165536K
TimeLimit:1000ms

Description:

判断一个数 是否是素数。

Input:

输入数据有多组,每组1个正整数n( 1 <= n <=10000000)。

Output:

如果是素数 输出YES;否则输出NO。

SampleInput:

11
15
19

SampleOutput:

YES
NO
YES

Problem:1321 差点是素数

MemoryLimit:65535K
TimeLimit:1000ms

Description:

统计两个区间[l1,r1],[l2,r2]的整数中有多少个数满足:它本身不是素数,但只有一个素因子。当x两个区间都符合时,答案只算一次

Input:

一共t组数据 t<=25005
每组数据l1,r1,l2,r2 (1<=l1<=r1<=1e12,1<=l2<=r2<=1e12)

Output:

输出满足两个区间整数个数

SampleInput:

1
1 5 2 10

SampleOutput:

3

Source:

Songjy


Problem:1858 六花的素数(2)

MemoryLimit:65535K
TimeLimit:1000ms

Description:

小鸟游六花是一个中二病,她喜欢酷酷的东西,她觉得素数非常酷。现在有n个数,每个数可能是素数也可能不是素数。由于小鸟游六花非常喜欢素数,他想把这n个数其
中的一些数给拆分成和等于这个数的两个正整数(拆后的数不能再拆),她想通过这个操作来获得最多的素数,对于每个数,你都既可以选择拆也可以选择不拆。六花想
知道她最后最多可以得到多少个素数?

Input:

多组输入
第一行是一个数n(n<=2e5)
接下来是n个数a[1]~an

Output:

输出最后能得到的素数个数的最大值

SampleInput:

5
7 5 3 2 1

SampleOutput:

6

Hint:

7可以拆成2 5这2个素数,5可以拆成2和3这2个素数,3不拆共1个素数,2不拆共1个素数,1不能拆并且1不是素数,所以最多能得到6个素数。

发布了62 篇原创文章 · 获赞 202 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/csg999/article/details/104303248