Дано натуральное число N. Найти ближайшее к нему простое число.

0 голосов
29 просмотров

Дано натуральное число N. Найти ближайшее к нему простое число.


Информатика | 29 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

Var n,i: integer;
    priz: boolean;
begin
  write('n = ');  readln(n);
  repeat
    priz:=true;
    for i:=2 to round(sqrt(n)) do
    if n mod i=0 then
    begin
      priz:=false;
      break;
    end;  
    if priz then write(n)
    else inc(n);
  until priz;
end.

n = 121
127


(9.7k баллов)
0 голосов

#Python 3.X

from itertools import count

def prime(n):
    for i in range(2, (n // 2) + 1):
        if n % i == 0:
            return False
    else:
        return True

def prime_closest_to(n):
    for i in count(n):
        if prime(i):
            x = i
            dx = x - n
            break
    for j in count(n - 1, 1):
        if prime(j):
            y = j
            dy = n - y
            break
    ret = x if dx < dy else y
    return ret

n = int(input('n = '))
print('Ближайшее простое число =', prime_closest_to(n))

(7.2k баллов)