Форум программистов, компьютерный форум CyberForum.ru

Алгоритм евклида для длинных чисел - C++

Восстановить пароль Регистрация
 
User1990
26 / 26 / 2
Регистрация: 03.11.2009
Сообщений: 158
19.04.2012, 16:25     Алгоритм евклида для длинных чисел #1
прошу содействовать в написании данного алгоритма....
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
static long_ & algorithm_euclida(long_ & a, long_ & b){
    
        long_  x1,y1,x2,y2,x,y;
        
        x1=1;x2=0;y1=0;y2=1;
        while(a.chislo[0] % 2==0 && b.chislo[0] % 2==0){
        
            a=a<<1; b=b<<1; 
        }
 
        x=a;y=b;
 
        do{
            while(x.chislo.at(0)%2==0){
    
                x=x<<1;
    
                if(x1.chislo.at(0)% 2==0 && y1.chislo.at(0) %2==0){
                
                    x1=x1<<1;y1=y1<<1;
            
                }else{
                
                    x1=(x1+y)<<1; y1=(y1-x)<<1;
            
                }
            }
 
            while(y.chislo.at(0) %2==0){
            
                y=y<<2;
            
                if(x2.chislo.at(0) %2==0 && y2.chislo.at(0) %2==0){
            
                    x2=x2<<1;y2=y2<<1;
            
                }else{
                
                    x2=(x2+y)<<1; y2=(y2-x)<<1;
            
                }
            }   
    
            if(x>=y){
            
                x=x-y;
            
                x1=x1-x2; y1=y1-y2;
                
            }else{  
    
                y=y-x;
    
                x2=x2-x1; y2=y2-y1;
 
            }
 
        }while(x!=0);
    
    x=y1;y=y2;
 
    return x;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2012, 16:25     Алгоритм евклида для длинных чисел
Посмотрите здесь:

C++ Описать функцию NOD2(A,B) целого типа,находящую наибольший общий делитель(НОД) двух целых положительных чисел А и В,используя алгоритм Евклида:....
наибольший общий делитель (НОД) двух целых положительных чисел A и B, используя алгоритм Евклида: C++
C++ Найти наибольший общий делитель (НОД) двух введенных натуральных чисел, используя алгоритм Евклида
Алгоритм Евклида для n целых чисел C++
НОД двух чисел алгоритм Евклида C++
C++ Найти наибольший общий делитель двух чисел используя алгоритм Евклида
C++ Алгоритм Евклида для одномерных массивов
Найти наибольший общий делитель трех заданных натуральных чисел, используя алгоритм Евклида C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 02:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru