Rezultati

Up. imeNalogaJezikRezultatČas oddaje
pokosimo-2019 Kvadrati Python 3 0/100Prekoračen čas (TLE) 09. maj '19 @ 17:25

Test Točke Porabljen spomin Porabljen čas Status
#1 [več] 0/2 8,398 MiB 3,263 s Prekoračen čas
#2 [več] 0/2 8,418 MiB 3,263 s Prekoračen čas
#3 [več] 0/2 8,465 MiB 3,304 s Prekoračen čas
#4 [več] 0/2 8,414 MiB 3,263 s Prekoračen čas
#5 [več] 0/2 8,559 MiB 3,253 s Prekoračen čas
#6 [več] 0/2 8,395 MiB 3,273 s Prekoračen čas
#7 [več] 0/2 8,395 MiB 3,213 s Prekoračen čas
#8 [več] 0/2 8,535 MiB 3,279 s Prekoračen čas
#9 [več] 0/3 8,477 MiB 3,284 s Prekoračen čas
#10 [več] 0/3 8,391 MiB 3,268 s Prekoračen čas
#11 [več] 0/3 8,391 MiB 3,268 s Prekoračen čas
#12 [več] 0/3 8,539 MiB 3,263 s Prekoračen čas
#13 [več] 0/3 8,418 MiB 3,273 s Prekoračen čas
#14 [več] 0/3 8,340 MiB 3,279 s Prekoračen čas
#15 [več] 0/3 8,465 MiB 3,273 s Prekoračen čas
#16 [več] 0/3 8,539 MiB 3,248 s Prekoračen čas
#17 [več] 0/3 8,559 MiB 3,253 s Prekoračen čas
#18 [več] 0/3 8,449 MiB 3,263 s Prekoračen čas
#19 [več] 0/3 8,461 MiB 3,289 s Prekoračen čas
#20 [več] 0/3 8,469 MiB 3,279 s Prekoračen čas
#21 [več] 0/3 8,395 MiB 3,284 s Prekoračen čas
#22 [več] 0/3 8,488 MiB 3,284 s Prekoračen čas
#23 [več] 0/3 8,535 MiB 3,268 s Prekoračen čas
#24 [več] 0/3 8,418 MiB 3,253 s Prekoračen čas
#25 [več] 0/3 8,398 MiB 3,294 s Prekoračen čas
#26 [več] 0/3 8,535 MiB 3,284 s Prekoračen čas
#27 [več] 0/3 8,398 MiB 3,243 s Prekoračen čas
#28 [več] 0/3 8,543 MiB 3,294 s Prekoračen čas
#29 [več] 0/3 8,473 MiB 3,258 s Prekoračen čas
#30 [več] 0/3 8,473 MiB 3,279 s Prekoračen čas
#31 [več] 3/3 8,602 MiB 0,000 s OK
#32 [več] 3/3 8,535 MiB 0,000 s OK
#33 [več] 3/3 8,531 MiB 0,000 s OK
#34 [več] 3/3 8,609 MiB 0,000 s OK
#35 [več] 3/3 8,613 MiB 0,000 s OK
#36 [več] 0/3 8,539 MiB 3,258 s Prekoračen čas

Ocenjevani program (kvadrat.py):
import math

def binar(n):
	st0 = 0
	st1 = 0
	while(n > 0):
		if(n % 2 == 0):
			st0+= 1
		else:
			st1+=1
		n = n // 2
	return (st0, st1) 


n = int(input())
nic, ena = binar(n)
mesta = nic + ena
maxst = 0
for i in range(ena):
	maxst += 2**(mesta-i-1)
minst = 2**(mesta-1)
for i in range(ena-1):
	minst += 2**i
	
#print(maxst, minst)

kormax = int(math.sqrt(maxst))
kormin = int(math.ceil(math.sqrt(minst)))

res = 0
for i in range(kormin, kormax+1):
	st0, st1 = binar(i**2)
	if(st0 == nic and st1 == ena):
		res += 1

print(res)