输出100以内所有素数

素数:即为质数,在大于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 + " ");
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值