Задать вопрос
@Maxutka2006
Мальчик

Как ускорить код на Python?

Помогите ускорить код:
a=int(input())
b=1
def koren(a,b):
    while b*b<=a:
        b+=1
    if b*b==a:
        print(b)
    else:
        print(b-1)
koren(a,b)

https://acmp.ru/index.asp?main=task&id_task=146
Ccылка задачи
  • Вопрос задан
  • 207 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
longclaps
@longclaps
def duren(a):
    lo, hi = 1 if a else 0, a
    while lo + 1 < hi:
        mid = (lo + hi) // 2
        if mid * mid > a:
            hi = mid
        else:
            lo = mid
    print(lo)

duren(123456789 ** 2)
Ответ написан
Комментировать
@MazAlVlad
import time #текущее время
NOW_TIME=(time.time()) #фиксируем начало времени

from math import sqrt,floor #корень, округление вниз

f_in=open('INPUT.TXT','r') #открываем на чтение INPUT.TXT
A=int(f_in.read()) #переводим str в int, если там натуральное то исключение не даст
f_in.close() #закрываем INPUT.TXT
B=floor(sqrt(A)) #вычисляем корень A и округляем в меньшую сторону
f_out=open('OUTPUT.TXT','w')#открываем на запись OUTPUT.TXT
f_out.write(str(B)) #переводим число в str и записываем в OUTPUT.TXT
f_out.close() #закрываем OUTPUT.TXT

NEXT_TIME=time.time()#фиксируем последнее время

#выводим значения
print(NOW_TIME)
print(NEXT_TIME)
print(A)
print(B)
Ответ написан
@anerev
from math import floor
from decimal import *

getcontext().prec = 1500
print(floor(Decimal(input()).sqrt()))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы