C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Теорема Ферма, Помогите с задачей
at0mic
Отправлено: 07.05.2004, 19:15


Не зарегистрирован







Помогите с задачей Ферма(та, что в книге Кнута находится(там ещё её алгоритм дан)). Типа что число надо разложить на целые множители. плиз, а то у меня времени на неё уже не хватает.... sad.gif
exp
Отправлено: 07.05.2004, 23:32


Мастер участка

Группа: Участник
Сообщений: 304



Так, в общем не нашел я в Кнуте ни задачи ни описания алгоритма,
но вот что могу предложить...
CODE


void FindMultiplier(int N,AnsiString &Multiplier)
{
int i = 2;                                          // Будем искать по порядку
while((i<=N)&&(N % i !=0)){i++;}  //т. к. на 1 делить-беспонт-начнем с 2 Multiplier+=" * "+IntToStr(i);           //добавим найденное к строке
if(i!=N)                                            // если то, что мы нашли не есть само
{                                                    // проверяемое число, то
 FindMultiplier(N/i , Multiplier);       // повторим эти операции с N/i
}
return;                                           // Das glucklich ende! (Happy End! , Fin)
}                                                      


void __fastcall TForm1::Button1Click(TObject *Sender)
{
int N = CSpinEdit1->Value;
AnsiString Multipliers="1";
FindMultiplier(N,Multipliers);
Label1->Caption = Multipliers;
}

Думаю с коментами разберешься

Вернуться в Вопросы программирования в C++Builder