С++ — Помогите пжс решить задачу! Циклические процессы с использованием функций

С++ -Помогите пжс решить задачу! Циклические процессы с использованием функций.
Вводится последовательность из N целых чисел. Сформировать новую
последовательность, каждый элемент которой равен 1, если
соответствующее число простое, 2 – если число совершенное, 0 – в
остальных случаях. Вычислить количество 0, 1 и 2 в выходной
последовательности (функциями оформить проверку является ли число
простым, совершенным).

  • #include
    #include

    bool is_prime(int n) {
    if (n < = 1) return false; for (int i = 2; i * i <= n; i++) if (n % i == 0) return false; return true; } bool is_perfect(int n) { int s = 0; for (int i = 1; i < n; i++) if (n % i == 0) s += i; return s == n; } using namespace std; int main() { int n; cout << "n? "; cin >> n;
    int *r = new int[n];
    for (int c = 0; c < n; ++c) { int v; cout << "? "; cin >> v;
    r[c] = is_prime(v) ? 1 : (is_perfect(v) ? 2 : 0);
    }
    cout < < "nresult:n"; for (int c = 0; c < n; ++c) cout << r[c] << ' '; int zero, one, two; zero = one = two = 0; for (int c = 0; c < n; ++c) r[c] == 0 ? ++zero : (r[c] == 1 ? ++one : ++two); cout << "nzero: " << zero << "none: " << one << "ntwo: " << two << endl; return 0; }