//5万未満3以上の素数を求める
class HogeClass implements Runnable {
 public static final int N = 50000;
 public static boolean[] f = new boolean[50000];
 private int p;
 public HogeClass(int p){
  this.p = p;
 }
 public void run(){
  for(int i=3;i*p<N;i+=2){
   f[i*p]=true;
  }
 }
 public static void main(String[] arg){
  for(int i=3;i<N;i+=2){
   if (f[i]==false){
    (new Thread(new HogeClass(i))).start();
   }
  }
  int k=0;
  for(int i=3;i<N;i+=2){
   if (f[i]==false){
    k++;
    System.out.print(i+",");
   }
  }
  System.out.println("\n素数="+k+"個");
 }
}
スレッドの使い方を勉強してるんですが、素数を求めるプログラムをスレッド使って作ってみたんですけど
私初心者なんでこれで問題のある部分あったら教えていただけないでしょうか