Convert from an input pulse frequency to output another in near real time?

unsigned long ConvertToHalfCycleTime(unsigned long inputCycleTime)
{
  // To "reduce the frequency by a factor of 0.865" we
  // multiply the cycle time by 1.156 (inverse of 0.865).
  unsigned long outputCycleTime = inputCycleTime * 1.156;
  return outputCycleTime / 2;
}