int.gcd în Dart

gcd dă cel mai mare divizor comun; modPow calculează (n la puterea e) modulo m, fără depășire.

Sintaxă
int gcd(int other)
int modPow(int exponent, int modulus)

Ce face int.gcd

a.gcd(b) returnează cel mai mare divizor comun al celor două numere, mereu pozitiv: 12.gcd(18) este 6. Se folosește la simplificarea fracțiilor și la calculul celui mai mic multiplu comun: a * b ~/ a.gcd(b).

n.modPow(e, m) calculează ne mod m eficient, fără să calculeze puterea uriașă întreagă (care ar depăși 64 de biți). Este operația de bază în criptografie (RSA). Exponentul trebuie să fie ≥ 0, iar modulul > 0.

Parametri

Parametru Descriere
other La gcd: al doilea număr.
exponent Puterea (≥ 0).
modulus Numărul la care se ia restul (> 0).

Ce returnează

Un int.

Exemple

Exemplul 1: Simplificarea unei fracții

void main() {
  var numarator = 42, numitor = 56;
  var d = numarator.gcd(numitor);
  print('$numarator/$numitor = ${numarator ~/ d}/${numitor ~/ d}');
  var cmmmc = 4 * 6 ~/ 4.gcd(6);
  print('cmmmc(4, 6) = $cmmmc');
  print((-12).gcd(8));
}

Rezultat

42/56 = 3/4
cmmmc(4, 6) = 12
4

Exemplul 2: Puteri mari modulo

3200 nu încape în 64 de biți, dar restul său la 1000 se calculează direct.

void main() {
  print(3.modPow(200, 1000));
  print(2.modPow(10, 1000));
  print(5.modPow(0, 7));
}

Rezultat

1
24
1

Greșeli frecvente

  • Calculezi pow(3, 200) % 1000: puterea depășește int și rezultatul este greșit. Folosește modPow.

Comenzi înrudite

  • int.remainder: Restul împărțirii, cu semnul deîmpărțitului; diferă de % la numere negative.
  • BigInt.pow: Ridică un BigInt la o putere întreagă, cu rezultat exact; modPow calculează puterea modulo un număr.
  • int: Tipul pentru numere întregi (fără zecimale): vârste, cantități, note, indici.