qq_32676553 2015-12-24 08:40 采纳率: 0%
浏览 1540

java 新手 关于素数的简单问题。请指教

如题,下面是程序。但我不知道为什么在for语句的时候,必须使用**divisor<=d/2**,,为什么要**d/2**,而divisor<=d为什么就无法执行限入死循、、这里break是不是跳出整个while循环,还是调回到for.求解。
import java.util.Scanner;
public class Test{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
/*a为素数的个数,
b为每行打印的个数
c为变量计算素数的个数。
d为数字。
e为布尔值*/
final int a =50;
final int b =10;
int c = 0;
int d = 2;
while(c<a){
boolean e =true ;
for(int divisor =2;divisor<=d/2;divisor++){
if(d%divisor==0){
e = false;
break;}
}
if (e){
c++;
if(c%b==0)
System.out.println(d);
else
System.out.print(d+" ");
}
d++;
}
}
}

  • 写回答

3条回答 默认 最新

  • 逝水无痕o0 2015-12-24 08:49
    关注

    如果用d 永远进不去 if(e) e永远会成为false

    评论

报告相同问题?

悬赏问题

  • ¥15 Stata 面板数据模型选择
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用