java吧 关注:1,191,016贴子:12,603,160
  • 3回复贴,共1

1~100素数作业,错了但我找不到逻辑错在哪

只看楼主收藏回复

/*
作业:用for循环输出1~100之间的所有素数
*/
public class Fortest06_1{
public static void main(String[] args) {
for(int i=2;i<=100;i++){
if(i<3){
System.out.println(i);
}else{
int product = 1;
int k = 1;
for(int j=2;j<i;j++){
k = i%j;
product = product * k ;
}
if(product != 0){
System.out.println(i);
}
}
}
}
}


IP属地:广东1楼2020-06-09 23:17回复
    可能是超出int的取值范围了


    IP属地:广东来自iPhone客户端2楼2020-06-10 01:44
    回复
      给你讲个算法,定义一个101的数组,从下标为2开始,每循环到一个数,就把它的倍数全部标为1,比如3,那就把下标为3的倍数,6,9,12。。值变为1,这样时间复杂度就会降低


      IP属地:广东来自iPhone客户端3楼2020-06-10 01:51
      收起回复