unsigned int greatest_divisor(unsigned int n) { if (n == 0 || n == 1) { return 1; } int i; for (i = n / 2; i > 0 && n % i; i--) { continue; } return i; }