Algoritmus probíhá tak, že do řídící proměnné cyklu uloží menší ze dvou čísel a a b. V cyklu se testuje, je-li a,b dělitelné beze zbytku řídící proměnnou. Není-li dělitené, odečte se proměnná cyklu o jednu. Je-li dělitelné, pak se jedná o NSD.
import java.io.*;
public class NSD{
public static void main(String[] args){
int a,b,i;
boolean delitelne;
long zacatek, konec;
// Nacteni promennych a,b
System.out.println("\n\n\tZadej dve cisla");
System.out.print("\tZadej cislo a: ");
a=VstupData.ctiInt();
System.out.print("\tZadej cislo b: ");
b=VstupData.ctiInt();
i=0;
if (a>b) i=b+1;
else i=a+1;
delitelne=true;
// cyklus a vypocet NSD(a,b)
do{
i=i-1;
if ( a%i==0 & b%i ==0 ) delitelne=false;
}while(delitelne & i>0);
System.out.println("\n\n\tNejvetsi spolecny
delitel cisel: "+a+" a "+b+" je: "+i);
}
}