fork download
  1. def create_square_roots_table(modulus=17):
  2. """
  3. Створює таблицю квадратних коренів у стилі RareSkills
  4. """
  5. print("Елемент | 1-й корінь | 2-й корінь")
  6. print("--------+------------+------------")
  7.  
  8. # Словник для зберігання квадратних коренів
  9. roots_dict = {}
  10.  
  11. # Знаходимо всі квадрати та їх корені
  12. for x in range(modulus):
  13. square = (x * x) % modulus
  14. if square not in roots_dict:
  15. roots_dict[square] = []
  16. roots_dict[square].append(x)
  17.  
  18. # Виводимо таблицю для елементів, що мають квадратні корені
  19. for element in sorted(roots_dict.keys()):
  20. roots = sorted(roots_dict[element])
  21. if len(roots) == 1:
  22. print(f"{element:7} | {roots[0]:10} | n/a")
  23. else:
  24. print(f"{element:7} | {roots[0]:10} | {roots[1]:10}")
  25.  
  26. def main():
  27. print("Квадратні корені у скінченному полі modulo 17")
  28. print("=============================================")
  29. create_square_roots_table(17)
  30.  
  31. if __name__ == "__main__":
  32. main()
Success #stdin #stdout 0.09s 14096KB
stdin
Standard input is empty
stdout
Квадратні корені у скінченному полі modulo 17
=============================================
Елемент | 1-й корінь | 2-й корінь
--------+------------+------------
      0 |          0 | n/a
      1 |          1 |         16
      2 |          6 |         11
      4 |          2 |         15
      8 |          5 |         12
      9 |          3 |         14
     13 |          8 |          9
     15 |          7 |         10
     16 |          4 |         13