代码如下:
public class prime{
public static void main(String []args){
int i=2,j=1;
for(i=2;i<10;i++)
for(j=1;j<i;j++){
if(i%j!=0){
if(i==j+1){
System.out.println(+i);
}
else i++;
}
}
}
}
因为判断素数的算法不对,比如当i=4时 ,i%j=4%3!=0,并且 i==j+1,但4不是素数,所以需要改进算法。
修改如下:
参考链接:
public class prime{
public static void main(String []args){
int i=2,j=1;
for(i=2;i<10;i++) {
for(j=2;j<i;j++){
// https://baike.baidu.com/item/%E8%B4%A8%E6%95%B0/263515
// 根据素数的定义,如果2到(i-1)里的数有一个能整除i,则i不是素数
if(i%j==0){
break;
}
}
// 反之,则i是素数,此处j==i,说明用2到(i-1)之间所有的数都不能整除i,因为如果可以整除,则j不能增加到i
if(j==i) {
// https://zhidao.baidu.com/question/246245130305317244.html
System.out.println(i);
}
}
}
}
【相关推荐】
class Person {属性:id=1}
class Man extends Person{属性:id=2}
Person p = new Man();
P.id;//输出的是Person的id,即id=1
重载:调用地址在编译阶段就绑定了,称为”静态绑定“
多态:运行的时候调用地址才绑定,称为”动态绑定“