Aquí está el código en dos archivos para ejecutar la impresión de los números primos gráficamente
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); }
}
Aquí está el código de impresión
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);
// esta instrucción siguiente publica
// un rectángulo en la posición 5,5 en alto a la izquierda
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;
} }
¡aquí está el resultado

Para ejecutar el programa anterior, necesitas crear el proyecto disegno con el main y agregar la clase Tela
Sigue el curso de Java en línea y las lecciones de video. ¡Buena diversión!