C de formülden yola çıkarak mükemmel sayıları hızlıca bulmak

Kurtbeyi

Misafir Editör
Katılım
5 Şub 2022
Mesajlar
1,980
Tepkime puanı
0
Puanları
36
Konum
istanbul
Cinsiyet
  1. Bay
Takım
Fenerbahçe
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++;
}
}
 
metal işleme
Üst