Другие языки программирования и технологии

помогите пожалуйста. решите задачу (функции) в с++

Вводится последовательность целых чисел, 0 – конец последовательности. Найти, каких чисел в последовательности больше - простых или совершенных (функцией оформить проверку числа: результатами функций будет: 1 – число простое, 0 – число непростое; 1 – число совершенное, 0 - нет).
#include <iostream>
using namespace std;
unsigned simple(unsigned);
unsigned perfect(unsigned);
int main() {
    locale::global(locale(""));
    unsigned number, s = 0, p = 0;
    do {
        cout << " Число: ";
        cin >> number;
        s += simple(number);
        p += perfect(number);
    } while (number);
    if (!(s + p)) cout << " В последовательности нет совершенных и простых чисел";
    else if (!s) cout << " В последовательности нет простых чисел";
    else if (!p) cout << " В последовательности нет совершенных чисел";
    else if (s > p) cout << " В последовательности простых чисел больше чем совершенных";
    else if (p > s) cout << " В последовательности совершенных чисел больше чем простых";
    else cout << " В последовательности одинаковое количество простых и совершенных чисел";
    cout << endl;
    cin.get(); cin.get();
    return 0;
}
unsigned perfect(unsigned _number) {
    switch (_number) {
        case 6: _number = 1; break;
        case 28: _number = 1; break;
        case 496: _number = 1; break;
        case 8128: _number = 1; break;
        case 33550336: _number = 1; break;
        default: _number = 0;
    }
    return _number;
}
unsigned simple(unsigned _number) {
    unsigned x = 1;
    if (_number < 2) x = 0;
    else {
        for (unsigned n = 2; n <= _number / 2; n++) {
            if (!(_number % n)) {
                x = 0;
                break;
            }
        }
    }
    return x;
}
ИБ
Игорь Бучковский
70 695
Лучший ответ
тут на вопросы отвечают а не делают бесплатно за кого-то работу
Тима 13
Тима 13
39 908