D=pow(379153,-1,p) bad=0 for X in Z: A=[D*x%p for x in X] if len(set(A))!=50:bad+=1 for i in range(50): for j in range(i+1,50): z=(379153*(A[i]+A[j])+123801)%p ok=(146517<=z<=146611) or (793324<=(z+271828)%p<=793416) or (172273<=(z+314159)%p<=172366) if not ok:bad+=1 print('ORIGBAD',bad,'Z',len(Z))