public static Int32 FindPreviousDivisorWithoutReminder(this Int32 search_origin, Int32 dividend) { var r = -1; while (r != 0) { dividend.DivRem(--search_origin, out r); } return search_origin; }
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 FindNextDivisorWithoutReminder(Int32 search_origin, Int32 dividend) { var r = -1; while (r != 0) { dividend.DivRem(++search_origin, out r); } return search_origin; }