Напишите программу, которая определяет, является ли переданное ей натуральное число простым (простое число делится только на 1 и само на себя). ОБЯЗАТЕЛЬНО СЕЛАТЬ С РЕКУРСИЕЙ НА PYTHON!
var s : string[50]; i, j, k : word; f : boolean; function isSpace(ch : char) : boolean; begin isSpace := false; if ch = ' ' then isSpace := true; end; begin f := false; repeat j := 0; writeln('введите строку, состоящую из 2 слов'); readln(s); for i := 1 to length(s) do if isSpace(s[i]) then begin inc(j); k := i; end; if j =1 then f := true; until f; write(copy(s, k + 1, length(s)), ' ', copy(s, 1, k - 1)); end. недавно такую писала :)
// PascalABC.Net 3.0, сборка 1064 const n = 10; var ms: array[1..n] of string; t: string; i, j: integer; f: Text; begin { Чтение матрицы из файла } Assign(f, 'in.txt'); Reset(f); for i := 1 to n do Readln(f, ms[i]); Close(f); { Вывод матрицы на экран } Writeln('*** Бинарная матрица ***'); for i := 1 to n do Writeln(ms[i]); { Сортировка обменом (простейшая) } for i := 1 to n - 1 do for j := 1 to n - 1 do if ms[j] > ms[j + 1] then begin t := ms[j]; ms[j] := ms[j + 1]; ms[j + 1] := t end; { Поиск одинаковых строк } Writeln('Совпадающие строки'); j := 1; t := ms[1]; for i := 2 to n do begin if ms[i] = t then Inc(j) else begin if j > 1 then begin Writeln(t); j := 1 end; t := ms[i] end end; if j > 1 then Writeln(t) end.
import sys
sys.setrecursionlimit(22000)
def func(a, i):
if i*i<a:
if a>=i:
if a != i and a%i != 0:
i+=1
return(func(a, i))
elif a == i:
return ('YES')
else:
return('NO')
else:
return('NO')
else:
return('YES')
i = 2
a = int(input())
print(func(a,i))
вот, первые две строчки можете убрать, если на проверки вводятся не слишком большие числа.
буду благодарен, если отметите лучшим решением:)
Объяснение: