查找在给定范围内的最大素数 [英] Find the highest prime number in a given range

查看:142
本文介绍了查找在给定范围内的最大素数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要找到在给定范围的最高质数。

这里是我的code这适用于0-100,但如果我给0-125它显示质数为125。

I need to find the highest prime number in a given range.
Here is my code which works for 0-100 but if I give 0-125 it is showing prime number as 125.

<?php
    $flag=0;
    $b=125;
    for($i=$b;$i>=0;$i--)
    {
        if($i%2!=0)
        {
            for($b=3;$b<10;$b++)
            {
                if($flag==0)
                {
                    echo('<br>');
                    if($i%$b!=0)
                    {
                        echo('highest prime number is'.$i);
                        $flag=1;
                        break;
                    }
                    elseif ($i%$b==0)
                    {
                        break;
                    }
                }
            }
        }
    }
?>

在上面的code我已范围0-125

In the above code I have taken the range from 0-125

推荐答案

没错,问题是算法...

Yup the problem is algorithmic...

1)你需要检查截止到的sqrt($ B)即11在这种情况下

1) You'll need to check up till sqrt($b) i.e. 11 in this case

2) $标记逻辑有点乱了,没有用改变标志,则突破之后...

2) The $flag logic is kinda messed up, no use changing the flag then breaking out right after...

<?php
        $flag=0;
        $b=125;
        $sq=sqrt($b); 

        for($i=$b;$i>=0;$i--)
        {

            if($i%2!=0)
            {
                    for($b=3;$b<=$sq;$b++)
                    {
                            if($i%$b!=0)
                            {
                                $flag=1;
                            }
                            elseif($i%$b==0)
                            {
                                $flag=0;
                                break;
                            }
                    }
            if($flag==1){ 
                echo('highest prime number is '.$i);  
                break;
            }
        }
    }
?>

这篇关于查找在给定范围内的最大素数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆