关于查找素数的方法

对于素数的查找:

       如题,我们要寻找素数。倘若我们要设计一个系统去找到这个素数,因此我们应该知道什么是素数,我应该用什么数学算法去判断它是素数,并合理的设计一套程序去运行它。

       首先.素数的的定义是能被一或本身整除的数。然后我根据它的概念可以想到,如果这个数能被2除尽,那这个数就并不是素数,因此它不能被2除尽,再想,如果它能被2除尽,那一定还对应另一个数可以被它除尽得2,在进行缩小范围,被3除尽,然后得到该数得三分之一....因此通过前两个思路我们可以知道,这个素数满足得条件应为:不能被2~它自身一半之间所有得数除尽。

清楚了这之后,我们就可以就行编写了:

进行一波分析(以100~200之间得数):

1.我们要找100~200之间素数,首先需要找到这之间的数,我们可以利用循环解决这个问题(这里以for循环为例)

for(int i = 100;i<=200;i++){
     System.out.println(i);
}

该程序可以得到这个100~200的数据。

2.我们要根据这个质数的判断规则,来进行设计程序(利用if条件书写判断条件)由于我们需要判断j~i/2是不是都可以除尽,换言之只要其中其中有一个可以除尽,则这个数就不可能是素数因此我们可以这样写

public class sushuo {
    public static void main(String[] args) {

            search(101,200);
    }
    public static void search(int start ,int end){
        for (int i = start;i<=end;i++){
       boolean a = true;

            for (int j = 2;j<=i/2;j++){

                if (i%j==0){
                   a=false;
                    break;
                }
                if (a){
                    System.out.println(i);
                    break;
                }
            }
        }
    }
}

利用双for循环在判断出i是不是可以被2~i/2除尽,为了达成这个条件利用boolean类型以及for循环内的刷新机制,此处的boolean值不能在for外面否则程序将无法运行。

如果需要找素数可以利用上述的方法进行计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值