为了账号安全,请及时绑定邮箱和手机立即绑定

查找以 1 结尾的输入的下一个素数

查找以 1 结尾的输入的下一个素数

慕田峪7331174 2022-12-28 13:58:28
我试图找到下一个以 1 结尾的素数。这只显示下一个素数。但我想打印下一个以 1 结尾的素数。int num=103;for(l=num+1;;l++){   for(k=2;k<l;k++)   {     if(l%k==0)        break;   }   if(k==l)   {       System.out.println("Next prime no is:"+l);       break;   }    }
查看完整描述

2 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

我们可以做这样的事情吗?


int num=103;

for(l=num+1;;l++)

{

   if(l%10==1)

   {

    for(k=2;k<l;k++)

    {

     if(l%k==0)

        break;

     }

     if(k==l)

     {

       System.out.println("Next prime no is:"+l);

       break;

     }

   }

}


查看完整回答
反对 回复 2022-12-28
?
千巷猫影

TA贡献1829条经验 获得超7个赞

我认为你可以做得比@ShashankGupta 建议的“加 1 并测试后面的每个数字是否以 1 结尾并且是质数”更好。一旦我们找到下一个以“1”结尾的数字(使用算术,而不是循环),我们只需要从那时起检查每十分之一的数字:


public static int next_one_prime(int number)

{

    // next number ending in '1'

    number += 1 + Math.floorMod(-number % 10, 10); 


    outer: while (true)

    {

        for (int k = 3; k * k <= number; k += 2)

        {

            if (number % k == 0)

            {

                number += 10;

                continue outer;

            }

        }


        return number; // next prime ending in '1'

    }

}


查看完整回答
反对 回复 2022-12-28
  • 2 回答
  • 0 关注
  • 104 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信