Переведите пожалуйста код с pascal на Python

var i,j,m,n:longint;
begin
for j:=100000000 to 300000000 do begin
   i:=j;
   m:=0;
   n:=0;
   while i mod 2 = 0 do begin
      i:=i div 2;
      m:=m+1;
      end;
   if (m mod 2 = 0) and (m>0) then begin
      while i mod 7 = 0 do begin
         i:=i div 7;
         n:=n+1;
         end;
      if (n mod 2 <> 0) and (i=1) then writeln(j);
      end;
end;
end.

Ответы (1 шт):

Автор решения: Алексей Белкин

Хоть код и переведен, но я не рекомендую его запускать, т.к. очень большие вычисления и Ваш ПК просто может зависнуть. Поэтому данный код чисто для понимая найденного Вами алгоритма.

for j in range(10 ** 8, 3*10 ** 8 + 1):
    i = j
    m = 0
    n = 0
    while i % 2 == 0:
        i //= 2
        m += 1
    if (m % 2 == 0) and (m > 0):
        while i % 7 == 0:
            i //= 7
            n += 1
        if (n % 2 != 0) and (i == 1):
            print (j)
→ Ссылка