Wir entschuldigen uns für diese lästige und unsinnige Cookie-Warnung, die uns die EU-DSGVO und das BDSG (neu) seit Mai 2018 abverlangt! Natürlich verwendet archium "Cookies". Wir verwenden Cookies ausschließlich aus technischen Gründen, z.B. zum Speichern von Session-Parametern, damit wir selber uns nicht andauernd neu anmelden müssen, wenn wir an der eigenen Seite basteln. Für den Inhalt der Besucher-Cookies interessieren wir uns nicht; wir haben in 12 Jahren nicht eine einzige individuelle Besucher-Information abgegriffen und werden das auch zukünftig nicht tun. Die die Durchsetzung des Datenschutzes überwachenden Aufsichtsbehörden der Länder 👁👁 erwarten jetzt von Ihnen, daß Sie Ihr Einverständnis mit unseren Cookies erklären und die Verantwortung für Ihr Handeln übernehmen indem Sie auf "Okay" klicken: Weitere Informationen

BenchmarkPzfJava

Aus archium
Version vom 11. Januar 2017, 21:34 Uhr von KlausWendel (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation, Suche
package pzf;

import java.sql.Timestamp;

class main {
	public static int testzahl = 12361423;
	public static boolean treffer = false;
	

	public static boolean isPrim(int n) {
	if (n <= 2 && n > 0) {
		return true; }
	else if (n % 2 == 0) {
		return false; } // Gerade Zahlen > 2 sind keine Primzahlen
	else {
		for (int i = 3; i <= Math.sqrt(n); i += 2)
			if (n % i == 0)
				return false;
	return true; }
	}

	public static void main(String[] args) {
		int peins, pzwei;
		long t0 = (new Timestamp(System.currentTimeMillis())).getTime();
		for (peins = 1; peins <= testzahl; peins += 2) {
			if (treffer == true){
				break;
				}
			else if (isPrim(peins)) {
			   for (pzwei = 1;pzwei <= testzahl; pzwei += 2) {
				   if (isPrim(pzwei) == true) {
						if (testzahl == (peins * pzwei)) {
							System.out.printf("[Java1] Erfolgreich beendet bei %d * %d = %d\n", peins, pzwei, testzahl);
							treffer = true;
							break;
						}
					}
				}
			}
		}
		long t1 = (new Timestamp(System.currentTimeMillis())).getTime();
		System.out.printf("[Java1] Iterative Ermittlung: %.3f Sekunden\n\n", (double)(t1 - t0)*Math.pow(10,-3));

		long t2 = (new Timestamp(System.currentTimeMillis())).getTime();
		for (peins = testzahl - 1 ; peins > 0; peins -= 1) {
			if (isPrim(peins)) {
				pzwei = (int)(testzahl / peins);
				if (testzahl % peins == 0 && isPrim(pzwei)) {
					System.out.printf("[Java2] Erfolgreich beendet bei %d * %d = %d\n", peins, pzwei, testzahl);
					break;
					}
				} 
			}
		long t3 = (new Timestamp(System.currentTimeMillis())).getTime();
		System.out.printf("[Java2] Iterative Ermittlung (Benischek-Verfahren): %.3f Sekunden\n\n", (double)(t3 - t2)*Math.pow(10,-3));
	}
}