Это хороший способ найти hcf? - PullRequest
0 голосов
/ 26 января 2011
#include <iostream>
using namespace std;
int main(){
     int a,b,hcf=0,i=1;
     cout<<"Enter Value  :";
     cin>>a;

     cout<<"Enter value  :";
     cin>>b;

    while(i<=a || i<=b){
         if(a%i ==0 && b%i ==0)hcf=i;
         ++i;
        }        
 return 0;
    }

или метод остатка?

Ответы [ 2 ]

3 голосов
/ 26 января 2011

Ты вообще нашел hcf?Похоже, что вы пытаетесь изменить номер.

1 голос
/ 26 января 2011

Если числа не являются действительно маленькими, алгоритм Евклида, скорее всего, будет на лот быстрее. Это линейно по размеру числа (с двумя делениями на итерацию, и деления являются одним из самых медленных типов команд). Евклида на самом деле довольно нетривиально для анализа - у Кнута V2 есть несколько страниц, но суть в том, что он, как правило, немного быстрее.

Если вы хотите использовать вариант того, который вы используете сейчас, я бы начал с i, равного меньшему из двух входов, и продолжил бы вниз . Таким образом, впервые раз вы найдете общий фактор, у вас есть свой ответ, чтобы вы могли выйти из цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...