素数:即为质数,在大于1的所有自然数中,除了1和自身以外不含其他因子的数
解题思路:
1.如何找一个数的因子,设该数为n
1和其本身被排除在外,只需从2开始找它的因子即可,那何时结束最好,结果为根号n,画出n=x*y的图像,当两个因子x,y相等的时候,如图所示
2.得出因子后,如何判断此数为质数
用一个值记录有其他因子,初始值为0,表示没有真因子,只要有就+1,退出循环
代码如下:
public class Nov0303 {
// 题目:计算100以内的所有素数 即为质数,在大于1的所有自然数中,除了1和其本身以外不能含有其他因子
public static void main(String[] args) {
System.out.println("1~100以内的所有素数:");
for (int i = 2; i < 100; i++){
// 用一个数记录该数有真因子,没有真因子record为0,有真因子record为1
int record = 0;
// 该数的平方根
int sqt = (int) Math.sqrt(i);
for (int j = 2; j <= sqt; j++){
if(i % j == 0){
// 只要有真因子,概述不满足素数条件,记录自身加1,退出循环
record++;
break;
}
}
// 满足没有真因子的条件,即为素数,输出它
if(record == 0){
System.out.print(i + " ");
}
}
}
}