Kod:
#include <stdio.h>
#include <math.h>
bool asalmi(int sayi)
{
if(sayi==2)
return true;
int a=ceil(pow(sayi,1.0/2.0));
for(int i=2;i<=a;i++)
{
if(sayi%i==0)
return false;
}
return true;
}
**** mukemmelmi(int sayi,int us)
{
int k=0;
for(int i=1;i<sayi;i++)
{
if(sayi%i==0)
k+=i;
}
if(k==sayi)
printf("%d ----> 2^%d(2^%d-1)\n",sayi,us,us+1);
}
main()
{
int i=1;
int us1,us2;
while(i<=20)//buffer overflow engellemek için sonsuza kadar ***ürüp kendiniz deneyebilirsiniz
{
us2=pow(2,i+1)-1;
if(asalmi(i+1)&&asalmi(us2))
{
us1=pow(2,i);
mukemmelmi(us1*us2,i);
}
i++;
}
}