求1到100内的质数
质数:只能被1和它本身整除
方法一:
代码如下:
public class PrimeNumber {
public static void main(String[] args) {
//100以内的所有质数的输出
//质数:素数,只能被一和它本身整除
//boolean isFlag = true;
for (int i = 2; i <=100;i++){
boolean isFlag = true; //标识i石佛被j除尽
for(int j = 2; j < i; j++){
if(i % j == 0){ //fi被j除尽
isFlag = false;
}
}
if(isFlag == true){
System.out.println(i);
}
//isFlag = true;
}
}
}
结果如下:
注:上面有两种将标识符放在不同的位置,效果一样。
方法二:优化版
代码如下:
class PrimerNumber1 {
public static void main(String[] args) {
//获取当前四件到1970-01-01的毫秒数
long start = System.currentTimeMillis();
for (int i = 2; i <= 100; i++) {
boolean isFlag = true; //标识i石佛被j除尽
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i % j == 0) { //i被j除尽
isFlag = false;
break; //只对本身是质数是有效的
}
}
if (isFlag == true) {
System.out.println(i);
}
}
long end = System.currentTimeMillis();
System.out.println("花费时间为:" +(end-start) );
}
}
注:里面计算了一下程序花费的时间,可以结合方法一,看看优化前后运行时间的差异
运行结果: