用Java编写10到100内的素数,运行输出了素数,可是每个素数都重复输出,求大神指点。

classNumber{publicstaticvoidmain(String[]args){intx;inty;intz;for(x=10;x<=100;x++){fo... class Number{
public static void main(String[] args){
int x;
int y;
int z;
for(x=10;x<=100;x++)
{
for(y=2;y<=Math.sqrt(x);y++)
{
z=Demo(x,y);
if(z==0)
{
break;
}
System.out.print(x+" ");
}

}

}
public static int Demo(int a,int b){
int d=a%b;
return d;
}
}
展开
 我来答
Jjin001
推荐于2016-05-31 · TA获得超过568个赞
知道小有建树答主
回答量:510
采纳率:0%
帮助的人:339万
展开全部

debug一下就知道问题在哪里了:

当x=11, y=2时, 11%2 != 0, 会输出一次;

当x=11, y=3时, 3 <= √11(根号11), 一次进入内层循环, 还会输出一次11;

以此类推;

解决方法:

System.out.print(x + " ");
break;

在输出之后加个break跳出循环即可。

这种问题不难, 多调试就会了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式