1932 - PC

From Bitnami MediaWiki
Revision as of 16:18, 26 April 2023 by Paul Ungur (talk | contribs)

Cerința

Gigel vrea un calculator nou care are prețul x. Tatăl acestuia, fiind profesor de matematica, i-a spus ca îi va cumpăra calculatorul dacă prețul x al acestuia este norocos. Un număr x este norocos dacă pătratul acestuia se poate scrie ca sumă de x numere consecutive. De exemplu, x = 7 este număr norocos deoarece, 7 * 7 = 4 + 5 + 6 + 7 + 8 + 9 + 10. Gigel a obţinut T oferte de preț și dorește să știe pentru fiecare dintre acestea dacă prețul este corespunzătar restricției pe care i-a impus-o tatăl său.

Date de intrare

Fișierul de intrare pc.in conține pe prima linie un singur număr natural T, reprezentând numărul de oferte. Pe a doua linie se află T numere naturale x1 x2 x3 … xT separate prin câte un spaţiu, cu semnificația din enunț.

Date de ieșire

Fișierul de ieșire pc.out va conține pe prima linie, separate prin câte un spațiu, cele T răspunsuri, în ordine: 1 dacă oferta este corespunzătoare restricției impuse și 0 în caz contrar.

Restricții și precizări

x < 2.000.000.000 T < 10

Exemplu:

pc.in def validare(n, nums):

   if not (1 <= n <= 2_000_000_000):
       return False
   if not all(0 <= nums < 10 for nums in nums):
       return False
   return True


def pc(n, nums):

   for i in range(n):
       if nums[i] % 2 == 0:
           fout.write("0 ")
       else:
           fout.write("1 ")


if __name__ == '__main__':

   fin = open("pc.in")
   fout = open("pc.out", "w")
   n = int(fin.readline().strip())
   nums = list(map(int, fin.readline().split()))
   if validare(n, nums):
       print("Date de intrare valide")
       pc(n, nums)
   else:
       print("Date de intrare invalide")
   fin.close()
   fout.close()

</syntaxhighlight>