Esercizi Java Prof.
Mauro De Berardis 1
/*
* IVBI ITIS Teramo 2012 MDB
* Il programma calcola il massimo comune divisore (MCD) di due numeri interi e positivi forniti in input
* L'MCD è il più grande numero intero positivo per il quale i due numeri sono divisibili.
* Per esempio l'MCD di 28 e 49 è 7
* Facendo riferimento all'esempio, l'algoritmo utilizzato è il seguente: si dividono i due numeri per tutti i numeri
* da 1 a 28. Se la divisione per entrambi in numeri non dà resto, si memorizza il divisore nella variabile mcd
* Alla fine del ciclo la variabile mcd conterrà il numero più grande che divide entrambi i numeri
*/
import [Link];
import [Link];
public class mcd {
static int mcd(int num1,int num2)
{
int mcd=1;
for(int i=2;i<num1 &i<num2;i++)
{
if(num1%i==0 && num2%i==0)mcd=i;
}
return mcd;
}
public static void main(String[] args) {
InputStreamReader input=new InputStreamReader([Link]);
BufferedReader tastiera=new BufferedReader(input);
String valoreletto;
int numero1,numero2;
do {
try
{
[Link]("Numero 1: ");
valoreletto=[Link]();
numero1=[Link](valoreletto);
}
Esercizi Java Prof. Mauro De Berardis 2
catch(Exception e)
{
[Link]("Errore");return;
}
}while(numero1<1);
do {
try
{
[Link]("Numero 2: ");
valoreletto=[Link]();
numero2=[Link](valoreletto);
}
catch(Exception e)
{
[Link]("Errore");return;
}
}while(numero2<1);
[Link]("Massimo comune divisore dei numeri %d e %d: %d ",numero1,numero2,+mcd(numero1, numero2));
//printf è un metodo ideale per formattare le stringhe...
}
}
Esercizi Java Prof. Mauro De Berardis 3
// IVBI ITIS Teramo 2012 MDB
//Programma che determina e conta i numeri primi e non primi tra 1 e 1000
class Primi
{
static boolean primo (int num)
{
if(num==1) return true;
for(int j=2;j<num/2+1;j++)
{
if(num%j==0) return false;
}
return true;
}
// Inizio del programma.
public static void main (String[] args)
{
int k1=0,k2=0;
for(int i=1;i<=1000;i++)
{
if (primo (i))
{
[Link] (i + " numero primo");
k1++;
}
else
{
[Link] (i + " --------------- numero non primo");
k2++;
}
}
[Link]("\nCi sono %d numeri primi e %d numeri non primi tra 1 e 1000",k1,k2);
}
}