Program losujący pary liczb całkowitych oraz wyliczający NWD każdej z par

0

Mam do napisania następujący program:

Utwórz program losujący 10 par liczb całkowitych z przedziału 0 - 100 i wyliczający
największy wspólny dzielnik każdej z par. Zadanie zrealizuj tworząc funkcje
implementującą algorytm Euklidesa.

Bardzo proszę o sprawdzenie i pomoc w znalezieniu błędu w napisanym przeze mnie programie. Nie zawsze dzielnik jest zgodny z prawdą.

Oto mój program:

import java.util.Random;
public class Euklides
{
	public static void main(String[] args) 
	{
		Random los = new Random();		
		for(int i=0;i<10;i++)
		{
			//Losowanie 10 par liczb całkowitych
			System.out.println((i+1)+" wylosowana para to: ");
			int a,b;
			a=los.nextInt(101);
			b=los.nextInt(101);
			System.out.print("a = "+los.nextInt(a)+"\t"+"b = "+los.nextInt(b)+"\n");				
			//Algorytm Euklidesa
			while (a != b)
			{
			if (a > b)
				a = a-b;
			else
				b = b-a;
			}
				System.out.println("Największy wspólny dzielnik (NWD) to: "+a);	
				System.out.println();
		}
	}
}
0
  1. Ten wiersz: - System.out.print("a = "+los.nextInt(a)+"\t"+"b = "+los.nextInt(b)+"\n"); - nie wypisuje a i b
  2. Ten algorytm NWD nie jest poprawną implementacja algorytmu.
0

Czy poniższe losowanie 10 par jest poprawnie ?

  Random los = new Random();        
        for(int i=0;i<10;i++)
        {
            //Losowanie 10 par liczb całkowitych
            System.out.println((i+1)+" wylosowana para to: ");
            int a,b;
            a=los.nextInt(101);
            b=los.nextInt(101);
            System.out.print("a = "+los.nextInt(a)+"\t"+"b = "+los.nextInt(b)+"\n"); 
1

W przedstawionym fragmencie kodu widzę 40 losowań, zaś 10 par to powinno być 20 losowań.

0

@ghost200, a co z tym

Zadanie zrealizuj tworząc funkcje
implementującą algorytm Euklidesa.
warunkiem?

1 użytkowników online, w tym zalogowanych: 0, gości: 1