#include using namespace std; int IsSemifauxtrifactored(int value) { // Return 1 if a number's factors/divisors from (value - 1) to 1 sum up to a quarter of the number value // Return 0 otherwise // A number is called "semifauxtrifactored" if its summed factors/divisors equal a quarter of the number itself // Integer division is used, so remainders on the halving can be lost // That's why... // 7 is a semifauxtrifactored number // 7 divided by 4 with integer division is (7 / 4) = 1 // 7 % 6 -> 1 // 7 % 5 -> 2 // 7 % 4 -> 3 // 7 % 3 -> 1 // 7 % 2 -> 1 // 7 % 1 -> 0 FACTOR! // 7 is a semifauxtrifactored number since its factors (1) equal a quarter of the number (1) // 6 is a normal number // 6 divided by 4 with integer division is (6 / 4) = 1 // 6 % 5 -> 1 // 6 % 4 -> 2 // 6 % 3 -> 0 FACTOR! // 6 % 2 -> 0 FACTOR! // 6 % 1 -> 0 FACTOR! // 6 is a normal number since its factors (1 + 2 + 3) do not equal a quarter of the number (1) } int main() { cout << "Enter a value: "; int value; cin >> value; value = IsSemifauxtrifactored(value); if (value == 1) { cout << "The number is semifauxtrifactored!"; } else { cout << "The number is normal"; } cout << endl; system("PAUSE"); } .