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șteintși rezultatul este greșit. FoloseștemodPow.
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.