一个很基础的问题,望各位不吝赐教。

cmfan2002 2003-10-31 10:24:16
我是个初学者,在看thinking in java,遇到一题就是用for和%打出质数。答案如下
public static void main(String[] args) {
int max = 100;
if(args.length != 0)
max = Integer.parseInt(args[0]);
for(int i = 1; i < max; i++) {
boolean prime = true;
for(int j = 2; j < i; j++)
if(i % j == 0) prime = false;
if(prime)
System.out.println(i);
}
}
看不大懂,哪位能给小弟解释一下?
...全文
23 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruru235 2003-11-01
  • 打赏
  • 举报
回复
public static void main(String[] args) { //agrs[]是输入的参数
int max = 100;
if(args.length != 0)
max = Integer.parseInt(args[0]); //如果传入的参数不为0,把max设为该参数,Integer.praseInt()把字符转化int

for(int i = 1; i < max; i++) {
boolean prime = true;//定义标志
for(int j = 2; j < i; j++)
if(i % j == 0) prime = false;//i%j是i模j,如果为0,表示i可以被j整除,当然不是素数

if(prime) //prime=true的话,输出i(质数)
System.out.println(i);
}
}
此程序不仅可以打印1到100的素数,你按下面运行
java 类名 参数(如10);
就可以打印1-10内的素数
playboyxp 2003-10-31
  • 打赏
  • 举报
回复
这个程序是打出1到99内的质数
public static void main(String[] args) {
int max = 100;
if(args.length != 0)
max = Integer.parseInt(args[0]);
for(int i = 1; i < max; i++) {
boolean prime = true;
for(int j = 2; j < i; j++)
if(i % j == 0) prime = false;//这个数除以2到他本身,除不进的是质数,这是个数学问题
if(prime)
System.out.println(i);
}
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧