Zaprojektuj program znajdujący wszystkie liczby od 1 do 1000, których czynniki pierwsze
sumują się do liczby pierwszej (na przykład czynnikami pierwszymi liczby 12 są 2, 2 i 3,
sumujące się do 7, która jest liczbą pierwszą).
Wiem, że błąd mam na pewno w warunkach w warunkach w main()... ale nie mam pomysłu za bardzo.
#include <iostream>
#include <math.h>
using namespace std;
int pierwsza(int a)
{
for(int i=2;i<=sqrt(a);i++)
{
if(a%i==0) return 0;
}
return 1;
}
int main()
{
int suma=0;
int pomocnicza,j;
for(j=1;j<=1000;j++)
{ pomocnicza=j;
for(int dzielnik=2;dzielnik<j;dzielnik++)
{
if(j%dzielnik==0)
{
suma+=dzielnik;
j=j/dzielnik;
}
}
if(pierwsza(suma)==1)
cout<<endl<<pomocnicza;
}
return 0;
}