fork download
  1. def piksl1(y):
  2. r = 0
  3. while y:
  4. if y & 1:
  5. r +=1
  6. y >>= 1
  7.  
  8. return r
  9. def edin1(n):
  10. b1 = 2
  11. c = 1
  12. while b1 <= n:
  13. c = c*2 % n
  14. if c == 1:
  15. #print ("-u-", n, "-e-",b1, c)
  16. return b1
  17. b1 = n
  18. b1 += 1
  19. return b1
  20. def edin2(n):
  21. p1 = 1
  22. bn = n.bit_length()
  23. c1 = 2**bn
  24. k1 = n
  25. while p1 <= c1:
  26. c = k1 % c1
  27. if c == c1 - 1:
  28. return p1
  29. k1 = k1 + n
  30. p1 +=1
  31. return p1
  32. def edin3(n, b2):
  33. bn = n.bit_length()
  34.  
  35. q1 = n * 2**bn
  36. q2 = n * (b2)
  37. nn = 0
  38. b1 = 2
  39. c1 = 0
  40. c = 1
  41. while b1 <= 30000:
  42.  
  43. c = c*2 % q1
  44. #print (b1, c , q2, bn, q1)
  45. if (c-1) == q2:
  46. nn +=1
  47. if nn == 2:
  48. print ("-p-", c1, b1-c1)
  49. return b1
  50.  
  51. #print ("-up-", n, "-e-",b1, c1)
  52. c1 = b1
  53. #return b1
  54. b1 += 1
  55. return b1
  56.  
  57.  
  58. x = 71
  59. y = 103
  60.  
  61. n = x * y
  62. xy = x + y
  63. print (x,y)
  64. print (n, xy)
  65.  
  66. bb = edin1(n)
  67. b2 = n % (bb-1)
  68. c = pow(2, bb-1, 145*256)
  69. c1 = c / 145
  70. c2 = c % 145
  71. c3 = pow(2, bb-1, n)
  72. print (c, c1, c2, c3)
  73. print ("-u-", n, "-e-",bb, b2)
  74.  
  75. a1 = 3
  76.  
  77. bn = n.bit_length()
  78. #print (n, bn)
  79. ado = 1
  80. A = bn
  81. while a1 <= A-1:
  82. w1 = 2**a1
  83. w2 = n % w1
  84. bn = w2.bit_length()
  85.  
  86. if w2 > ado:
  87. print ("-u-", w2, bn)
  88. d1 = edin1(w2)
  89. d2 = edin2(w2)
  90. d3 = edin3(w2, d2)
  91. print (d3)
  92. print (d2, bb % d2)
  93. print ("-u-", n, "-e-",d1)
  94. ado = w2
  95. a1 +=1
Success #stdin #stdout 0.01s 7348KB
stdin
Standard input is empty
stdout
(71, 103)
(7313, 174)
(18432, 127, 17, 1)
('-u-', 7313, '-e-', 1786, 173)
('-u-', 17, 5)
('-p-', 9, 8)
17
(15, 1)
('-u-', 7313, '-e-', 9)
('-u-', 145, 8)
('-p-', 29, 28)
57
(143, 70)
('-u-', 7313, '-e-', 29)
('-u-', 1169, 11)
('-p-', 250, 249)
499
(911, 875)
('-u-', 7313, '-e-', 250)
('-u-', 3217, 12)
('-p-', 805, 804)
1609
(2959, 1786)
('-u-', 7313, '-e-', 805)