fork download
  1. import math
  2. def Rech1(N, Q1):
  3. R1 = [0]
  4. dxy1 = N % Q1
  5. a1 = 1
  6. while a1 < Q1:
  7. b1 = a1
  8. while b1 < Q1:
  9. M1 = a1 * b1
  10. #print(a1,b1)
  11. m1 = M1 % (Q1)
  12. if m1 == dxy1:
  13. #print("-1-",M1, m1, a1, b1)
  14. R1.append(a1)
  15. R1.append(b1)
  16. R1[0] +=2
  17. if a1 != b1:
  18. R1.append(b1)
  19. R1.append(a1)
  20. R1[0] +=2
  21. b1 +=2
  22. a1 +=2
  23. return R1
  24. def Rech2(N, Q1,Q2,Q3, R1):
  25. R2 = [0]
  26. dxy2 = N % Q3
  27. #print(Q2, Q3, dxy2)
  28. rn = R1[0]//2
  29.  
  30. r = 1
  31. while r <= rn:
  32. a1 = R1[r*2-1]
  33. b1= R1[r*2]
  34. #print(a1,b1)
  35. a2 = 0
  36. while a2 < Q1:
  37. b2 = a2
  38. while b2 < Q1:
  39. c2 = a2*Q2 + a1
  40. d2 = b2*Q2 + b1
  41. cd2 = (c2 + d2) % Q3
  42. M2 = c2 * d2
  43. m2 = M2 % (Q3)
  44.  
  45. if m2 == dxy2:
  46. #print("-2-",M2, m2, c2, d2 )
  47. R2.append(c2)
  48. R2.append(d2)
  49. R2[0] +=2
  50. if c2 != d2:
  51. R2.append(d2)
  52. R2.append(c2)
  53. R2[0] +=2
  54.  
  55. b2 +=1
  56. a2 +=1
  57. r +=1
  58.  
  59. return R2
  60. def Ransh(R2,Q2):
  61. n = R2[0]//2
  62. R=[0]*(Q2+2)
  63. r = 1
  64. while r <= n:
  65. a1 = R2[r*2-1]
  66. b1= R2[r*2]
  67. ab = (a1 + b1) % Q2
  68. R[ab] +=1
  69. r +=1
  70. Rr =[0]
  71. r = 1
  72. while r <= Q2:
  73. if R[r] > 0:
  74. Rr.append(r)
  75. Rr[0] +=1
  76. r +=1
  77. return Rr
  78.  
  79. Q1 = 10
  80. x = 563
  81. y = 821
  82. N = x * y
  83. xy = x + y
  84. xy1 = xy % Q1
  85. xy2 = xy % (Q1*Q1)
  86. xy3 = xy % (Q1*Q1*Q1)
  87. xy4 = xy % (Q1*Q1*Q1*Q1)
  88. N1 = N % Q1
  89. N2 = N %(Q1*Q1)
  90. print(N,N1,N2, xy1, xy2, xy3, xy4)
  91. n = 11
  92. Sim = [0]* (n)
  93. #for i in range(n):
  94. #print ( i, Sim[i])
  95. print(Sim)
  96. R1 = []
  97. R1 = Rech1(N,Q1)
  98. print(R1)
  99. Rr1 =[]
  100. Rr1 = Ransh(R1, Q1)
  101. print(Rr1)
  102.  
  103. Q11 = Q1
  104. z = 1
  105. Z = 2
  106. while z <=Z:
  107. Q2 = Q11*Q1
  108. #print (z, Q11, Q1, Q2)
  109. R2 = []
  110. R2 = Rech2(N,Q1,Q11,Q2,R1)
  111. print(R2[0])
  112. r = R2[0]
  113. R1 =[r]
  114. #print(r)
  115. r1 = 1
  116. while r1 <= r:
  117. r2 = R2[r1]
  118.  
  119. R1.append( r2)
  120. r1 +=1
  121. Rr1 =[]
  122. #print(R1[0])
  123. Rr1 = Ransh(R1, Q2)
  124. print(Rr1[0])
  125. print(Rr1)
  126. Q11 = Q2
  127. #print R1
  128. z +=1
Success #stdin #stdout 0.01s 7144KB
stdin
Standard input is empty
stdout
(462223, 3, 23, 4, 84, 384, 1384)
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[8, 1, 3, 3, 1, 7, 9, 9, 7]
[2, 4, 6]
96
10
[10, 4, 16, 24, 36, 44, 56, 64, 76, 84, 96]
1056
50
[50, 16, 24, 56, 64, 96, 104, 136, 144, 176, 184, 216, 224, 256, 264, 296, 304, 336, 344, 376, 384, 416, 424, 456, 464, 496, 504, 536, 544, 576, 584, 616, 624, 656, 664, 696, 704, 736, 744, 776, 784, 816, 824, 856, 864, 896, 904, 936, 944, 976, 984]