Disegniamo la solitudine dei numeri primi e tutti i fattori dei numeri naturali analizzati.

Ecco il codice su due file per eseguire la stampa dei numeri primi graficamente.

package disegno;
import javax.swing.*;
public class Disegno {
public static void main(String[] args) {
JFrame t= new JFrame("Grafica Iterativa");
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Tela p = new Tela();
t.add(p);
t.setSize(1800, 1000);
t.setVisible(true);

}
}

Ecco il codice di stampa

package disegno;
import java.awt.*;
import javax.swing.*;
public class Tela extends JPanel{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
this.setBackground(Color.WHITE);
g.setColor(Color.BLACK);
// questa istruzione seguente pubblica
// un rettangolo nella posizione 5,5 in alto a sx
int n=1;
String sn="";
for (int r=45;r<1000;r=r+41) { for(int i=0;i<1800;i=i+41) { if (IsPrimeFactor(n)>2||IsPrimeFactor(n)==1)
{g.setColor(Color.BLACK);
}
else
{g.setColor(Color.white);}
       g.fillRect(i,r,40,40);


      g.setColor(Color.black);

     if (IsPrimeFactor(n)==2){
      sn=Integer.toString(n);}
     else{



         sn=Integer.toString(IsPrimeFactor(n));
         g.setColor(Color.white);}


      if (IsPrimeFactor(n)>2||IsPrimeFactor(n)==1){
      g.drawString(sn, i+10, r+30);
      g.drawString(Integer.toString(n), i+10, r+10);}
      else{ g.drawString(sn, i+10, r+15);}

      n++;
    }
}
}
public int IsPrime(int n)
{ int primo=1;
      int fattore=2;
      boolean exit=false;
      if (n==1)
      {exit=true;primo=0;}
     while(fattore<=n/2 && !exit)
     {
     if (n%fattore==0)
        {  primo=0;
          exit=true;
        }
     fattore ++;
    }
    return primo;

}

public int IsPrimeFactor(int n){
int x=2,fattori=2;
if(n!=1){
while(x<=n/2)
{if (n%x==0)
{fattori+=1;}
x++;}}
else{fattori=1;}
return fattori;
}

}

ecco il risultato

Per eseguire il programma sopra hai bisogno di creare il progetto disegno con il main e aggiungere la classe Tela

Segui il corso di Java online e le video lezioni. Buon divertimento!

Comments

comments

Leave a Reply

Your email address will not be published.