Newsgroup: it.comp.java
Titolo: numeri primi tra loro

devo realizzare un esercizio per prendere in input dei numeri e dire se
sono primi tra loro.Posso usare semplici cicli,senza array(e qui sta il
problema).posso usare ovviamente if-else però non riesco a farlo.riporto
il codice ma è sbagliato
import javax.swing.*;
public class Primi_tra_Loro{
    public static void main (String args []){
        int n1,n2,max,min,div=2,tot=0;
        n1=Integer.parseInt(JOptionPane.showInputDialog("inserisci il
primo numero"));
        n2=Integer.parseInt(JOptionPane.showInputDialog("inserisci il
secondo numero"));
        if (n1>=n2){
            max=n1;
            min=n2;
        }
        else{
            max=n2;
            min=n1;
        }
        while( (min>0) & (tot==0) ){
            if (max%div==0){
                if (min%div==0){
                    tot++;
                }
            }
            max--;
            min--;
            div++;
        }
        if (tot==0){
            JOptionPane.showMessageDialog(null,"i numeri sono primi tra
loro");
        }
        else{
            JOptionPane.showMessageDialog(null,"i numeri non sono primi
tra loro");
        }
    }
}
 
 
 
 
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 il codice ma č sbagliato
due numeri sono primi tra loro se non hanno divisori in comune.
Parti da 2 e controlla se č un divisore sia di n1 che di n2, se lo č 
esci dal ciclo, altrimenti iteri il ciclo provando con 3 e cosě via fino 
al minore tra n1 e n2.
es:
boolean primi=false;
int i=2;
while (!primi && i<=n1 && i<=n2) {
  primi=(n1%i==0)&&(n2%i==0);
  if (!primi) i++;
}
al termine del ciclo in i trovi il divisore comune oppure il minimo tra 
n1 e n2, in primi trovi T o F a seconda se n1 e n2 sono primi tra loro o 
meno
ciao
Alesi_27

 il codice ma è sbagliato
Basta con questi esercizi ammanettati!!!! :-)
Rinfrescami un pò la memoria.
Un numero si dice primo se è divisibile solo per 1 e per se stesso.
Due numeri sono primi tra loro se......
Ciao
Marco 

napo wrote:

non hanno divisori comuni all'infuori di 1..
segue una soluzione non testata..
import javax.swing.*;
class prime {
 public static void main (String args []){
  int n1, n2, swp;
  n1 = Integer.parseInt(JOptionPane.showInputDialog("inserisci il primo
numero"));
  n2 = Integer.parseInt(JOptionPane.showInputDialog("inserisci il secondo
numero"));
 
  if (n1 > n2) {
    swp = n1;
    n1 = n2;
    n2 = swp;
  }
  for (swp = n1; swp > 1; swp--) {
   if (n1 % swp == 0 && n2 % swp == 0) {
    JOptionPane.showMessageDialog(null,"i numeri non sono primi tra loro");
    System.exit(0);
   }
  }
  JOptionPane.showMessageDialog(null,"i numeri sono primi tra loro ");
  System.exit(0);
 }
}
-- 
 

 Due numeri sono primi tra loro se......
se nn hanno divisori in comune.
cmq ho risolto!
ciao


> credimi,sono + stufo di te!
Il prossimo esercizio sarà questo, già lo so:
"scrivere un programma Java che inverte un array, senza usare gli array"
oppure
"scrivere un programma Java che calcola una media ponderata, senza usare 
Java"
Ciao
Marco 

 Marco


Prova ad utilizzare questo teorema (Wilson):
un numero p è primo SE e SOLO SE:
(p-1)! = -1(mod(p))
-- 
Pietro
(\_/)  <- This is Bunny.
(°_°)     Copy Bunny into your signature to help
(> <)     him on his way to world domination.