//  Data Structures with Java by John R. Hubbard
//  Copyright McGraw-Hill, 2001
//  Example 1.5 on page 
//  Using loops

class Ex0105
{ public static void main(String[] args) 
  { System.out.println("n\tp(n)\tln(n)\t\t\tp(n)*ln(n)/n");
    final String DASHES18="\t------------------";
    System.out.println("------\t-----" + DASHES18 + DASHES18);
    int p=1;  // p = number of primes that are <= n
    for (int n=3; n<1000000; n += 2)
    { int d=3;
      while (d<=Math.sqrt(n) && n%d>0)
        d += 2;
      if (n%d==0) continue;
      ++p;
      if (p%5000>0) continue;
      double ln=Math.log(n);
      System.out.println(n + "\t" + p + "\t" + ln + "\t" + p*ln/n);
    }
    System.out.println("------\t-----" + DASHES18 + DASHES18);
  }
}
