public static Int32 FindDivisorWithoutReminder(this Int32 search_origin,Int32 dividend, ForwardBackwardDirection direction) { var r = 0; dividend.DivRem(search_origin, out r); if (r == 0) return search_origin; if (direction == ForwardBackwardDirection.Forward) return FindNextDivisorWithoutReminder(dividend, search_origin); else return FindPreviousDivisorWithoutReminder(dividend, search_origin); }
public static Int32 FindEvenNumber(this Int32 search_origin, ForwardBackwardDirection direction) { var r = 0; search_origin.DivRem(2, out r); if (r == 0) return search_origin; if (direction == ForwardBackwardDirection.Forward) return search_origin + 1; else return search_origin - 1; }
public static Int32 FindOddNumber(this Int32 search_origin, ForwardBackwardDirection direction) { var r = 0; search_origin.DivRem(2, out r); if (r == 1 || r == -1) return search_origin; if (direction == ForwardBackwardDirection.Forward) { return search_origin + 1; } else { return search_origin - 1; } }