# kgV



## sk72 (14. Nov 2011)

Ich habe mal versucht einen Code für den kgV zu schreiben:


```
public int kgV(int a, int b) {
		
		for(int i=1; i<=10; i++) {
			int x = a*i;
			
//			System.out.println("x= "+x);
			
			for(int j=b; j>0; j--) {
				int y = b*j;				
//				System.out.println("y= "+y);
				
					if(x==y) {
						System.out.println("kgv=" +x);
						break;
					}

			}
			
		}
		
		return 0;
		
	}
```

Prinzipiell funktioniert das Ganze auch, auch wenn mein Code wahrscheinlich äußerst unprofessionell geschrieben ist. Sollte allerdings für den Anfang erst einmal genügen.

Meine Frage ist, wie ich den Code nach dem Finden des kgV abbrechen kann, sonst zeigt er mir ja noch weitere kgVs an.

Lg

Achja, vielleicht habt ihr auch ja noch gleich ein paar Tipps, wie in den Algorithmus effizienter programmieren könnte ?


----------



## Marcinek (14. Nov 2011)

return x statt break


----------



## sk72 (15. Nov 2011)

danke 

Wie kann ich den Algorithmus denn effizienter schreiben ?


----------



## lipox (15. Nov 2011)

Der euklidische Algorithmus (Google ist dein Freund) berechnet den ggT effizient. Aus diesem kannst du leicht das kgV bestimmen, denn kgV(a,b) = | a * b | / ggT(a,b)


----------



## FerFemNemBem (15. Nov 2011)

Mahlzeit,

evtl. koenntest Du das so machen:


```
private int ggt(int a, int b)
    {
        while(true) 
        {
            a = a % b;
            if(a == 0) return b;
            b = b % a;
            if(b == 0) return a;
        }
    }

    private int kgv(int a, int b)
    {
        if(a == 0 || b == 0) return 1;
        return (a*b)/ggt(a,b);
    }
```

da haste beides dabei...

Gruss, FFNB.


----------

