输出2~100之间的所有素数。

首先在本题开始前要了解,什么是素数:

        素数也称为质数,是指大于1的自然数中,除了1和它本身以外不再有其他因素的自然数;

        这题的话我这边的话有一种方式,两种解题思路解答的;当然,如果你有更好的解答方法可以在评论区进行讨论;

第一种方法:

        定义一个方法进行然后进行循环判断,第一层循环是循环每一个数

        内嵌的循环,是为了循环去除以2到第一层循环前一位的数,如果第二层循环判断结束,如果还有余数,那么这个数就是质数,如果在循环内除以一个数没有余数的话,就判断他不为,直接跳出循环进入下一层循环

public class ApplictionController {
    public static void main(String[] args) {
        boolean a;//定义一个布尔类型的a
        for(int i=2;i<=100;i++) {//进行一个循环,循环次数为需要判断的最大数
            a =false;//给a进行一个赋值
            for(int j=2;j<i;j++) {//定义一个新的循环,最数为i-1
                if(i%j==0) {
                    a=true;//没有余数就结束此次j循环
                    break;}
            }//如果除完都有余数的话就进行一个输出
            if(!a) {
                System.out.print(i+" ");
            }
        }
    }
}
当然这种方法速度十分的慢,因为他每次都要重新去循环

第二种方式:

这种方式是我个人的一种想法,不过我不会操作,欢迎大佬留言指点

        就是 首先,我们定义一个数组,这个数组为无穷,然后我们进行一个循环

循环为

for (int i=2;i<=n;i++){//n为你想要判断的区间的数
    if(i==数组里面的数时候进行一个输出,这里用"||"){

        //定义一些初始值,以 2 3 5 7为初始值,把这些值丢进那个数组里面

    }else if(i% 数组内的数 != 0,这里用到&&){

        /*这里的话,就是判断 i 如果除以数组里面的数如果
            不等于0的话进行一个输出,并且把i丢进数组**/

    }

}

        这种方式的话就相当于,我们定义了一个数组,这个数组里面都是质数,我们去用i去除以数组里面的质数,如果除以这个数组里面的质数有余数的话我们就把他定义为质数,并且把他丢进数组里,这种方式我觉得要比第一种方式要快很多,不需要循环去除以每一个数,只需要除以数组里面的数字就可以了

欢迎各位大佬在下方评论区,进行探讨,以及指点.............................................................................................................................................................

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值