Facebook
From Social Hedgehog, 6 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 235
  1. int ifun_SetA(int &iModule) {
  2.         int iA, iLambda, iMaksLambda=0;                  
  3.         int *iTabA = ifun_MakeTab(100);                                                                                         // 100 bo po ch wiecej i tak nie bedzie a nie bede kombiowal
  4.        
  5.         for (int i = 0, iA = 2, iLambda = 1; iA < iModule; iA++, iLambda++, i++) {      // Sprawdzamy każde a mniejsze od m, kazda lambde, i do zwiekszania tablicy?
  6.                 int iPowAandLambda = pow(iA, iLambda);
  7.        
  8.                 while (bfun_NWD(iA, iModule) == false) {                                                                // Ktore nie ma wspolnych dzielnikow z m
  9.                         while (iPowAandLambda % iModule == 1) {                                                         // A gdy znajdziemy takie a^l dla ktorego a^l % m = 1
  10.                                 if (iLambda > iMaksLambda) {                                           
  11.                                         iMaksLambda = iLambda;                                                                          // Jesli jest wieksza to ustawiamy ja jako max i
  12.                                                                                                                                                                 // wyzerowac tablice i dodac a jako pierwszy
  13.                                 }
  14.                                 if (iLambda == iMaksLambda) {
  15.                                                                                                                                                                 // A jak sa rowne to tylko dodajemy a jako kolejny wyraz do tab
  16.                                 }
  17.                         }
  18.                 }
  19.         }
  20. }