黑马程序员技术交流社区
标题:
求质数的代码,不知道正不正确,刚刚学完面向对象后面没学
[打印本页]
作者:
fanlelong
时间:
2016-4-16 21:50
标题:
求质数的代码,不知道正不正确,刚刚学完面向对象后面没学
public class Demo_质数 {
/**
* @param args
* 2.分析以下需求,并用代码实现:
(1)打印1-100之间的所有素数及个数
(2)每行输出5个满足条件的数,之间用空格分隔
(3)如果一个大于1的自然数,这个数只能被1和其本身整除,这个数就叫素数。
(4)如:2 3 5 7 11
*/
// 分析:1.质数不是偶数,用for循环 里面做if判断
// 2.定义一个计数器count
// 3.如果这数除本身==0 且%本身为0时为质数,则count ++
public static void main(String[] args) {
int count =0;//定义一个计算器
for (int i = 2; i <=100; i++) {
boolean b = true;
for (int j = 2; j <i; j++) {
if (i%j==0){
b = false;
break;
}
}
if(b){
count++;
System.out.print(i+" ");
if (count%5==0) { //输出5个就换行
System.out.println();
}
}
}
System.out.println(count);
}
}
作者:
小白想学javaEE
时间:
2016-4-16 22:25
是对的,你这代码怎么看着和参考答案类似
作者:
yy0328
时间:
2016-4-16 22:27
运行一下就知道结果了
作者:
qing31657552
时间:
2016-4-16 22:48
看不懂啊,
作者:
yaolv7
时间:
2016-4-16 23:36
本帖最后由 yaolv7 于 2016-4-16 23:44 编辑
哥们,你理解错了,这代码只是你刚好蒙对了,但不是你写的思路
【质数不是偶数...】看着很有道理,让 "2" 情何以堪.....
【如果这数除本身==0 且%本身为0时为质数,则count ++】 这儿思路有问题
for (int j = 2; j <i; j++) 你把内for循环中的 j<i 改成 j <= i ,这样才能除到本身,就是
for (int j = 2; j <= i; j++) ,但是换成这样的话,你试试看还有没有输出??
【这数除本身==0】 这句话不会实现,任何整数除以本身都不会等于0,
我说话比较直,别介意哈
哥们,加油,慢慢学
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2