黑马程序员技术交流社区
标题:
关于求一百以内质数的三种算法详解(最简版不服来辩)
[打印本页]
作者:
黑马初学者
时间:
2016-10-25 22:50
标题:
关于求一百以内质数的三种算法详解(最简版不服来辩)
/*
* 求1-100之间所有的质数,并将结果打印到控制台。
要求:6个一行。
提示:最小的质数是2
质数: 只能被1 和 自身整数的数字
7: 1 2 3 4 5 6 7
14: 1 2 3 4 5 6 7 8 9 10 11 12 13 14
*/
/*
* 思路:
* 1、获取到1-100之间所有的数字,但是我们知道最小的质数是2,所以循环就从2开始了。
* 2、获取到当前数字(i),然后依次和比它小的数字进行取模操作。
* //小细节:任何数字和1都能整除,所以,这里我们从2开始进行判断
* 3、判断第二步的结果是否等于0
* 如果等于0:i不是质数
* 如果不等:i是质数,就打印。
* 4、定义变量,按照6个一行输出即可
*/
基础版。。。。。。
int count = 0;
a: for (int i = 2; i <= 100; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
//能进这里说明一件事,i不是质数
continue a;
}
}
//如果能走到这里,说明是质数
System.out.print(i + "\t");
count++;
if (count % 6 == 0) {
System.out.println();
}
}
}
}
旗舰版。。。。
public class Demo04_旗舰版 {
public static void main(String[] args) {
long start = System.currentTimeMillis();
a: for (int i = 2,count = 0; i <= 100; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0)
continue a;
}
System.out.print((count++ % 6 != 0)?(i + "\t"):((count == 1)?(i + "\t"):("\r\n" + i + "\t")));
//System.out.println(5>3?"大":"小");
}
for (int i = 0; i < 100000; i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
}
豪华版。。。。。。
public class Demo04_豪华版 {
public static void main(String[] args) {
a: for (int i = 2,count = 0; i <= 100; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0)
continue a;
}
System.out.print(i + "\t");
if (++count % 6 == 0)
System.out.println();
}
}
}
java开发就是不断对程序进行最优化精简的的过程,希望大家一起努力,开发出令人满意的程序,一起加油!!!!!
作者:
liujiaxing0926
时间:
2016-10-25 23:10
int count = 0;
a: for (int i = 2; i <= 100; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
continue a;
}
}
System.out.print(i + "\t");
count++;
if (count % 6 == 0) {
System.out.println();
}
}
作者:
zhangpeng1991
时间:
2016-10-25 23:34
学习了
作者:
大黄蜂
时间:
2016-10-26 00:48
不错哦
作者:
UZI
时间:
2016-10-26 00:51
很强,受教了~~
作者:
黑马初学者
时间:
2016-10-27 00:06
UZI 发表于 2016-10-26 00:51
很强,受教了~~
哪里。一起加油
作者:
水中鸟
时间:
2016-10-27 00:12
顶~~顶,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2