code: func multiplierFromModulus(m int64, seed int64) int64 {
  	factors := primeFactors(m)
  	product := int64(1)
  	for p := range factors {
  		// satisfy condition 2
  		product *= p
  	}
  
  	if m%4 == 0 {
  		// satisfy condition 3
  		product *= 2
  	}
  
  	return product*seed + 1
  }
docs: // LCG parameters must satisfy three conditions:
  // 1. m and c are relatively prime (satisfied for prime c != m)
  // 2. a-1 is divisible by all prime factors of m
  // 3. a-1 is divisible by 4 if m is divisible by 4
  // Additionally, a seed can be used to select between different permutations