一道求质数的题目

zhangruiqi 2009-06-05 05:54:12
题目就是求101到200之间所有的质数并打印出来。我写的程序如下,但得不到正确结果,大家帮忙看看,问题在哪
public class zhishu{
public static void main(String argus[]){
int i = 101;
int j = 2;
while(i<=200){
boolean f = true;
while(j<i){
if(i%j==0){
f = false;
break;
}
j++;
}
if(!f) continue;
System.out.print(i+" ");
i=i+2;
}
}
}
运行结果是101 103 105 107 109 111等等。
...全文
58 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangruiqi 2009-06-05
  • 打赏
  • 举报
回复
谢谢大家,1楼和6楼的答案是正确的,5楼的兄弟程序可以过,不过有几个数不对,143不是质数
weiluo12 2009-06-05
  • 打赏
  • 举报
回复

public class zhishu {
public static void main(String argus[]) {
int i = 101;
int j = 2;
boolean f = true;
while (i <= 200) {
//与1楼这不同...
int num = (int) Math.sqrt(i);
f=true;
j=2;
while (j < num) {
if (i % j == 0) {
f = false;
break;
}
j++;
}
if (!f){
i = i + 2;
continue;
}
System.out.print(i + " ");
i = i + 2;
}
}
}
shibenjie 2009-06-05
  • 打赏
  • 举报
回复
楼主比较一下:
public class ZhiShu {
public static void main(String argus[]) {
int i = 101;
int j = 2;
while (i <= 200) {
j = 2;
boolean f = true;
while (j < i) {
if (i % j == 0) {
f = false;
break;
}
j++;
}
if (f)
System.out.print(i + " ");
i = i + 2;
}
}


}
米兔痴愚 2009-06-05
  • 打赏
  • 举报
回复
public class zhishu{
public static void main(String argus[]){
int i = 101;
int j = 2;
for(i;i<200;i++)
{
for(j; j<i;j++)
{
if(!(i%j))
brsak;
if(i>k)
System.out.print(i+" ");
}
}

}
}


haode 2009-06-05
  • 打赏
  • 举报
回复
在第一次循环以后,j的值就一直不变了
bigbug9002 2009-06-05
  • 打赏
  • 举报
回复
int j=2;
while(j<i){..............
knightzhuwei 2009-06-05
  • 打赏
  • 举报
回复
public class zhishu {
public static void main(String argus[]) {
int i = 101;
int j = 2;
boolean f = true;
while (i <= 200) {
f=true;
j=2;
while (j < i) {
if (i%j==0) {
f = false;
break;
}
j++;
}
if (!f){
i = i + 2;
continue;
}
System.out.print(i + " ");
i = i + 2;
}
}
}

62,614

社区成员

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

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