Нахождение следующего простого номера входа, который заканчивается 1 - PullRequest
0 голосов
/ 02 июня 2019

Я пытаюсь найти следующее простое число, которое заканчивается на 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 ]

0 голосов
/ 02 июня 2019

Я думаю, что вы можете сделать лучше, чем «добавить 1 и проверить каждое последующее число, если оно заканчивается на 1 и является простым числом», что предлагает @ShashankGupta.Как только мы нашли следующее число, которое заканчивается на «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'
    }
}
0 голосов
/ 02 июня 2019

Можем ли мы сделать что-то подобное?

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