Hallo Forum,
ich habe hier einen Quellcode gefunden den sehr praktisch finde.
Es gibt nur einen Haken. Es kann nicht mit sehr großen Zahlen (19 stellig) arbeiten.
Von:0x7F800000
Leider fehlt mir das Wissen und die Erfahrung wie es umschreiben muss,
damit es mit größeren Zahlen arbeiten kann, immerhin arbeitetet es schon mit long.
Bitte helft mir.
ich habe hier einen Quellcode gefunden den sehr praktisch finde.
Es gibt nur einen Haken. Es kann nicht mit sehr großen Zahlen (19 stellig) arbeiten.
Java:
public class eea{
public static void displayGcdExtended(long a, long b){
String s="%"+String.valueOf(Math.max(a,b)).length()+"d";
long bezoutA_current=1,bezoutB_current=0,bezoutA_next=0,bezoutB_next=1,q,r;
long _a=a, _b=b;
System.out.println("calculating gcd("+a+","+b+"):");
do{
q=a/b;
r=a-q*b;
System.out.printf(s+"="+s+"*"+s+"+"+s+"\t\t"+s+"\t"+s+"\n", a,q,b,r,bezoutA_current,bezoutB_current);
long tempA=bezoutA_next, tempB=bezoutB_next;
bezoutA_next=bezoutA_current-q*bezoutA_next;
bezoutB_next=bezoutB_current-q*bezoutB_next;
bezoutA_current=tempA;
bezoutB_current=tempB;
a=b;
b=r;
}while(r>0);
String e=s.substring(0,s.length()-1)+"s";
System.out.printf(s+" "+e+" "+e+" "+e+"\t\t"+s+"\t"+s+"\n", a,"","","",bezoutA_current,bezoutB_current);
System.out.println("gcd("+_a+","+_b+")="+a+"="+_a+"*"+bezoutA_current+"+"+_b+"*"+bezoutB_current+"\n");
}
}
Von:0x7F800000
Leider fehlt mir das Wissen und die Erfahrung wie es umschreiben muss,
damit es mit größeren Zahlen arbeiten kann, immerhin arbeitetet es schon mit long.
Bitte helft mir.