素数就是只能被1和它本身整除的数.
但是在java中怎么用代码来实现呢
下面以求出1-100之间所有的素数为例来
介绍这二种方法:
方法一(个人推荐使用这种方法,很好理解):
public static void main(String[] args) {
System.out.println(2);// 2也是素数
boolean b = true;
for (int i = 3; i < 100; i+=2) {
b = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
b = false;
break;
}
}
if (b) {
System.out.println(i);
}
}
分析:因为可以肯定的是除2以外的偶数都不会是素数
所以先打印2,然后把3开始环循,并且步长为2(i+=2);
再之, 遍历2-它本身之前的那个数
如果有一个整除了,就说明不是素数,判断型变量赋值为false
方法二:
public class Sushu {
public static void main(String []args){
final int max=100;
System.out.print("2"+" ");
int k=3;
do {
int j=(int)Math.sqrt(k);
if(j%2==0)
j--;
boolean yes =true;
while(j>2&&yes)
if(k%j==0)
yes =false;
else
j-=2;
if (yes){
System.out.print(k+" ");
}
k+=2;
}while (k<=max);
}
}
介绍:这是一同学写的,我也没有弄懂..但是功能实现了,仅供参考!