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