输出101到200的素数,为什么输出的答案不对

public class SUshu {


public static void main(String[] args) {

// TODO Auto-generated method stub

int s=101;

int m=2;

for(;s<=200;s++){

for(;m<s;m++){

if(s%m==0){

System.out.println(s+"不是素數");

}else{

System.out.println(s+"是素數");

}

}

}

}


}


遇与余
浏览 2065回答 4
4回答

你是格林我是童话

你的算法有问题。

iMcLaren

算法首先有问题啊。。素数的定义再去看一下吧。。

梦影剑魂

public class Sushu { public static void main(String[] args) { int i=101; for(;i<=200;i++){ for(int j=2;j<=i;j++){ if(j==i){ System.out.println(i+"是素数"); break; } if(i%j==0){ System.out.println(i+"不是素数"); break; } } } } }

梦影剑魂

你的程序算法就有问题,当s=102,进行第二次循环的时候,m已经等于100,而不是从2开始,所以后面的判断都出错,而且你不能只除以一个数,不能整除就判断它是素数,应该是等它把所有的数都除完才可以做出判断
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java