Не сте регистриран! Регистрирайте се БЕЗПЛАТНО, за да използвате услугите на сайта!

 Алгоритъм за намиране на съвършени числа
Автор  rxcp92 (27.06.2008 09:12) съобщение до автора
Погледнат  1301 пъти добави към любими
Оценка добави коментар
Гласове  -- изпрати на приятел
Коментари  (0) абонирай се за C-Cplusplus
     
rxcp92
     
 

Това е най-бързият алгоритъм за намиране на съвършените числа, използващ формулата на Евклид (съвършени числа са тези,които са равни на сумата от своите делители,например 6=1+2+3,28=1+2+4+7+14 и т.н.)

CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream.h>
#include
<stdlib.h>
#include
<cmath>
#include
<ctime>
bool prosti(unsigned long long n){
long long d=3;
double q=sqrt(n);
bool flag=1;
while((d<=q) && flag){
flag=(n%d)!=0;
d+=2;}
return flag;}
int main()
{
unsigned long long p;
cout<<6<<"\n";
for(int i=3;i<=31;i+=2){
if((prosti(i)) && (prosti(pow(2,i)-1))){
p=pow(2,i-1)*(pow(2,i)-1);//po formulata na evklid
cout<<p<<"\n";}}
system("PAUSE");
return 0;
}



Ключови думи: Алгоритъм за намиране на съвършени числа C++




 1 посетител чете този скрипт (0 потребители и 1 гост)  
Активни потребители: ---
   
  

Еmail  
 

 

 
  • Интересно от Софтуер
 
  • Интересно от myLINKS
 
 
 
 



IT-PLACE.NET © 2004 - 2008