问题描述:
用Java实现求前50个素数
问题解析:
质数(外文名prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数
也就说除了1还不能被自身整除的数
public static void main(String[] args) {
//定义一个布尔型的数组 ,默认都为false
Boolean[] be = new Boolean[100];
//遍历数组 更改为True
for(int k=0;k<be.length;k++){
be[k]=true;
}
//遍历整个数组,不能被1和自身整除的
for(int i=2;i<be.length;i++){
if(be[i]){//当元素为true时说明为素数进入循环
for(int j=2;i*j<be.length;j++){//计算i的2倍数,存在的2倍数都为非素数置为false
be[i*j]=false;
}
}
}
//循环便利打印前100个素数
for(int i=2;i<be.length;i++){
if(be[i]){
System.out.print(i+" ");
}
}
}
问题总结:
今天刚学到的写法,发现原来那种是按照人的思维,效率太低了!