Коллеги, спасибо за дружную и ответственную работу!

среда, 27 апреля 2022 г.

А в Паскале можно так же как в Питоне

 Это небольшое сообщение посвещено делимости чисел. Задание 25 ЕГЭ по информатике. Начну с самой простой задачи: найти делители числа 64.

Питон Паскаль
a=64
 if a%i==0:
      print (i)
uses school;
begin
var i:=64;
 writeln(Divisors(i));
end.
По справедливости надо отмтить, что работает верно для чисел меньше или равных 1000000000. Задача 2. Найти на интервале [193136;193223] числа имеющие ровно 6 делителей.
Питон Паскаль
def div(x):
     d=set()
     for i in range (1,int (x**0.5)+1):
            if x%i ==0:
                      d.add(i)
                      d.add(x//i)
     return sorted(d)
 for x in range(193136,193223+1):
            d=div(x)
            if len(d)==6:
                       print (d)
uses school;
begin
for var i:=193136 to 193223 do
begin
var masdel:=i.Divisors.Toarray;
 if masdel.length=6 then writeln(masdel);
end;
end.



Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [174457; 174505], числа, имеющие ровно два различных натуральных делителя, не считая единицы и самого числа. Для каждого найденного числа запишите эти два делителя и результат в таблицу на экране с новой строки в порядке возрастания произведения этих двух делителей. Делители в строке таблицы также должны следовать в порядке возрастания.

Питон Паскаль
def div(x):
       d=set()
       for i in range (1,int (x**0.5)+1):
              if x%i ==0:
                    d.add(i)
                    d.add(x//i)
return sorted(d)
for x in range(174457,174505+1):
     d=div(x)
     if len(d)==2:
       print(d[0],'*',d[1],'=',d[0]*d[1])
uses school;
begin
for var i:=174457 to 174505 do
begin
 var masdel:=i.Divisors.Toarray;
 if masdel.length=4 then writeln(masdel[1],'*',masdel[2],'=',masdel[3]);
end;
end.
Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [0; 1000] простые числа. Сосчитайте их количество. Ввыведите числа на экран и их количество.
Питон Паскаль
a=[]
for n in range(2,1000+1):
      q=round(n**0.5)
      ok=True
      for dd in range(2,q+1):
           if n% dd==0:
               ok=False
               break
if ok:
     a+=[n]
print(a)
print(len(a))



uses school;
begin
 var k:=0;
 for var n:=2 to 1000 do
begin
 var masdel:=n.Divisors.Toarray;
 if masdel.length=2 then
begin
 k:=k+1;
 write(masdel[1],' ');
end;
end;
 writeln;
writeln(k);
end.

Комментариев нет:

Отправить комментарий