#include <iostream>
using namespace std;
void pierwsze(int tabl[],int x);
int main()
{
int tabl[40];
pierwsze(tabl,40);
cout << "Liczby pierwsze z Fib(40): ";
for(int i=2; i<40; i++)
{
if(tabl[i]!=0)
{
cout << endl << tabl[i];
}
}
}
void pierwsze(int tabl[],int x)
{
tabl[0]=1;
tabl[1]=1;
for(int i=2; i<x; i++)
{
tabl[i]=tabl[i-2]+tabl[i-1];
}
int i=2;
while(i<x)
{
for(int j=2; j*j<=tabl[i]; j++)
{
if(tabl[i]%j==0)
{
tabl[i]=0;
}
}
i++;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgcGllcndzemUoaW50IHRhYmxbXSxpbnQgeCk7CgppbnQgbWFpbigpCnsKICAgIGludCB0YWJsWzQwXTsKCiAgICBwaWVyd3N6ZSh0YWJsLDQwKTsKICAgIGNvdXQgPDwgIkxpY3pieSBwaWVyd3N6ZSB6IEZpYig0MCk6ICI7CiAgICBmb3IoaW50IGk9MjsgaTw0MDsgaSsrKQogICAgewogICAgICAgIGlmKHRhYmxbaV0hPTApCiAgICAgICAgewogICAgICAgICAgICBjb3V0IDw8IGVuZGwgPDwgdGFibFtpXTsKICAgICAgICB9CiAgICB9Cgp9CnZvaWQgcGllcndzemUoaW50IHRhYmxbXSxpbnQgeCkKewogICAgdGFibFswXT0xOwogICAgdGFibFsxXT0xOwoKICAgIGZvcihpbnQgaT0yOyBpPHg7IGkrKykKICAgIHsKICAgICAgICB0YWJsW2ldPXRhYmxbaS0yXSt0YWJsW2ktMV07CiAgICB9CiAgICBpbnQgaT0yOwogICAgd2hpbGUoaTx4KQogICAgewogICAgICAgIGZvcihpbnQgaj0yOyBqKmo8PXRhYmxbaV07IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGlmKHRhYmxbaV0laj09MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdGFibFtpXT0wOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGkrKzsKICAgIH0KfQ==