Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Java by hax`n ( 17 years ago )
import java.util.Scanner;
import java.io.*;

public class Primzahlen 
{
 /**
  * Main
  * @param args
  * @return Primzahl
  */
 public static void main(String[] args) 
 {
  int x, thePrime = 0, j = 2, newcachecounter=0;
  
  System.out.print("Bitte geben Sie die n-te Primzahl ein: ");
  
  Scanner get;
  get = new Scanner(System.in);
  x = get.nextInt();
  
 
  int[] primes = new int[x];
  int primescachesize = 0;
  
  try{
   FileInputStream fstream = new FileInputStream("primes.txt");
   DataInputStream in  = new DataInputStream(fstream);
   BufferedReader  br  = new BufferedReader( new InputStreamReader(in) );
   String strLine;
   
   //cache lesen, primzahl pro zeile..
   while ( (strLine = br.readLine()) != null && primescachesize < x-1) {
    primes[primescachesize++] = Integer.valueOf(strLine);
   }
   
   in.close();
   
  } catch (Exception e){
   System.err.println("Error: " + e.getMessage());
  }
  
  
  int[] newprimes = new int[(x-primescachesize)];
    
  int counter = 0;
  double startZeit = System.currentTimeMillis();
  
  System.out.println("x: "+x+", primescachesize: "+primescachesize);
  
  if(x <= primescachesize+1)
  {
    System.out.println("lade von cache");
   System.out.println(primes[primescachesize-1]);
  }
  
  else {
  System.out.println("berechne neu...");
  while(x != counter)
  {
   if(primetest(j))
   {
    thePrime = j;
    
    if( counter > primescachesize)
     newprimes[newcachecounter++] = j;
    
    counter++;
    
   }
   j++;
  }
  System.out.println(thePrime);
 
  }
  System.out.println("Zeit dauer: "+ (System.currentTimeMillis()-startZeit) + " millisekunden");
  
  try{
   FileWriter fstream = new FileWriter("primes.txt",true);
   BufferedWriter out = new BufferedWriter(fstream);
    //neue primes wegspeichern..
    for(int prime : newprimes)
    { 
        if(prime != 0)
     out.write("" + prime + "n");
    }
    out.close();
  } catch (Exception e) {
   System.err.println(e.getMessage());
  }
 }
 
 /**
  * Prueft ob es eine Primezahl ist.
  * @param int prime
  * @return boolean
  */
 public static boolean primetest(int prime)
 {
 
  int p = 2;
  
  for(; p < prime; p++)
  {
   if(prime % p == 0)
   {
    return false;
   }
  }
  return true;
 }
}

 

Revise this Paste

Parent: 11631
Your Name: Code Language: