输出连续素数:
题目描述
编写程序,将大于整数m且紧靠m的k个素数输出(k小于10)。
关于输入
输入为一行,包括两个整数,第一个为整数m,第二个为个数k
关于输出
输出为一行,即满足条件的k个素数
为啥输出不了
#include
#include
using namespace std;
int main() {
int m,k,c=0,b;
cin>>m>>k;
b=(int)sqrt(m); //若m不是素数,则m必含比其平方数小的因子
while(cbool su=1;
for(int i=0;i//判断是否是素数
{
if(m%i==0)
{
su=0;
break;
}
}
if(su)
{
if(su)
{
if(c==1)cout<else cout<<" "<return 0;
}
你这代码问题多了
1.i不能等于0,除以0会报错,1也不对,任何数除以1都能除尽,i要从2开始啊
2.b算的太早了,应该放到循环里面来算,是紧靠m的连续k个素数,那你要对m+k开方而不是对m开方
举个例子,从8开始,连续输出3个素数,你如果只试到根号8就结束了,就会认为9是素数,那能对才怪
3.为什么if(su)里面还要再嵌套个if(su),这是啥写法
4.endl是换行符啊,人家要求你输出一行,删掉
12行i不能从0开始啊。m%i会异常