第四周-2.1邓老师数

                            邓老师数


时间限制:1 sec

空间限制:256 MB

问题描述

众所周知,大于 1 的自然数中,除了 1 与其本身外不再有其他因数的数称作质数(素数)

对于大于 1 的不是质数的自然数,我们又称作合数

参加了邓老师算法训练营的小 Z 突发奇想,定义了新的数:所有合数中,除了 1 与其本身外,其他因数均为质数的数,称作邓老师数

现在,小 Z 给定两个数 n,k,其中 k 的取值为 0 或 1。如果 k=0,小 Z 希望你告诉他所有不超过 n 的质数;如果 k=1,小 Z 希望你告诉他所有不超过 n 的邓老师数。

输入格式

一行两个用空格隔开的整数 n,k,意义见题目描述。

输出格式

对于每个找到的质数或邓老师数,输出一行一个整数表示这个你找到的数。

请升序输出所有答案。

样例输入

9 1

样例输出

4
6
9

样例解释

4 除去 1 与其本身外的因子有 2,均为质数,因此 4 是邓老师数。

6 除去 1 与其本身外的因子有 2,3,均为质数,因此 6 是邓老师数。

9 除去 1 与其本身外的因子有 3,均为质数,因此 9 是邓老师数。

8 除去 1 与其本身外的因子有 2,4,由于 4 不是质数,因此 8 不是邓老师数。

数据范围

本题共设置 8 个测试点,测试点编号从 1 至 8。

对于前 4 个测试点,保证 n<=1,000。

对于编号为偶数的测试点,保证 k=0;对于编号为奇数的测试点,保证 k=1。

对于所有的 8 个测试点,保证 n<=2*10^5。

提示

[对于求质数的问题,可以直接用Eratosthenes筛法求解。]

[对于求邓老师数的问题,考虑Eratosthenes筛法中“筛去”合数的逻辑,是否可以对其略作修改,使之支持筛出“非邓老师数”呢?]

另外,为了帮助大家完成题目,我们提供了只包含了输入输出功能的程序模板,也提供了含有算法的大部分实现细节的程序。

你可以根据自己的实际情况,在这些程序的基础上进行作答,或不参考这些程序,这将与你的得分无关。

这些程序可以从【这里】下载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值