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

Finding next prime no of the input which ends with 1

我试图找到下一个以 1.This 结尾的素数,仅显示下一个 prime.But 我想打印下一个以 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;
   }    }

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

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;
     }
   }
}

我认为你可以比@ShashankGupta 建议的 "add 1 and test every number that follows if it ends in 1 and is a prime" 做得更好。一旦我们找到下一个以“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'
    }
}