Odpowiedź :
#include <iostream>
#include <vector>
#include <math.h>
using namespace std;
void rozklad(vector <int> &czynniki, int liczba)
{
int bufor = 2;
while(liczba > 1)
{
while(liczba % bufor == 0)
{
czynniki.push_back(bufor);
liczba = liczba / bufor;
}
bufor ++;
}
}
bool czy_liczba_pierwsza(vector<int> czynniki)
{
int suma = 0;
for(int i = 0; i < czynniki.size(); ++i)
{
suma += czynniki[i];
}
for(int i = 2; i < suma; ++i)
{
if(suma % 2 == 0)
{
return true;
}
}
return false;
}
using namespace std;
int main()
{
vector<int>czynniki;
int liczba;
cout<<"Podaj liczbe: ";
cin>>liczba;
rozklad(czynniki,liczba);
if(czy_liczba_pierwsza(czynniki))
{
cout<<"Suma czynnikow pierwszych nie daje liczby pierwszej"<<endl;
}
else
{
cout<<"Suma czynnikow pierwszych daje liczbe pierwsza";
}
return 0;
}