#include <iostream>
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”);
}