Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 16:12

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Java] Primzahlen berechnen/ Math.srqt...

Discussion on [Java] Primzahlen berechnen/ Math.srqt... within the Java forum part of the Coders Den category.

Reply
 
Old   #1
 
Belur's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 3,441
Received Thanks: 1,473
[Java] Primzahlen berechnen/ Math.srqt...

Hey,

sollte eine Methode schreiben zum Primzahlen berechnen.

Hab mir das so vorgestellt:
PHP Code:
import java.lang.Math;


public class 
Primzahlen {

    public static 
void main(String[] args) {
        
int start 0;
int ende 100;


    
for(
int i=starti<=endei++){
    for(
int j 2j<=Math.sqrt(i); j++){
        if(
i%j==0){
            if(
j==i){
                
System.out.println(i);    
            }else{
                break;
            }        
            }
        }        
    }    
}

Sooo. Da man ja in der zweiten For-Schleife eigentlich nicht weiter als bis zu Wurzel von "i" gehen muss, hab ich die Wurzel da reingepackt. Geht aber nicht. Kommt keine Ausgabe.

Wenn ich das Math.sqrt rausnehme, dann läuft es problemlos.
Hab schon versucht die Variablen als Double zu nehmen, was aber auch nichts brachte.

Vllt kann mir da jmd helfen.

Grüße


#edit: Gefunden. Dummer Fehler, hätte ich früher sehen können.
Belur is offline  
Old 04/15/2014, 20:37   #2
 
​Tension's Avatar
 
elite*gold: 110
Join Date: Jun 2013
Posts: 599
Received Thanks: 510
Wie kommst du auf Wurzel?

Quote:
Jede Zahl lässt sich in ihre Primfaktoren zerlegen. Diese Primfaktoren (=Primzahlen) sind nur durch 1 und sich selbst teilbar. Um zu prüfen, ob eine Zahl eine Primzahl ist, musst du also jede unter der Zahl liegende Primzahl prüfen. Am besten fängt man natürlich erst mal mit den Kleinsten an (2,3,5,7,11).
Code:
int start = 0;
int ende = 100;
int i, j;
for (i = 2; i <= ende; i++)
{
	j = (i - 1);
	while (i%j) {
		j--;
	}
	if (j == 1) {
		System.out.println(i);
	}
}
wäre meine unschöne Lösung.
​Tension is offline  
Thanks
1 User
Old 04/15/2014, 21:01   #3
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Wieso benutzt du nicht das Sieb des Eratosthenes? Das ist einfacher und effizienter als immer wieder die Wurzel zu ziehen bzw. zu dividieren:



Code:
    public static boolean[] getPrimzahlen(int maxValue) {
        if (maxValue < 2) {
            maxValue = 2;
        }
        boolean[] isPrim = new boolean[maxValue + 1];
        for (int i = maxValue; i >= 2; i--) {
            isPrim[i] = true;
        }
        for (int i = 2; i * i <= maxValue; i++) {
            if (isPrim[i]) {
                int nextNotPrim = i+i;
                while (nextNotPrim <= maxValue) {
                    isPrim[nextNotPrim] = false;
                    nextNotPrim += i;
                }
            }
        }
        return isPrim;
    }
Zunft is offline  
Thanks
3 Users
Old 04/15/2014, 21:02   #4
 
Belur's Avatar
 
elite*gold: 0
Join Date: Jul 2009
Posts: 3,441
Received Thanks: 1,473
Danke schonmal. Hatte meinen Fehler grad auch noch gesehen.

Mit der Wurzel kann ichs grad garnicht beschreiben. Ich weiß es nur noch aus der Vorlesung.
Belur is offline  
Old 04/15/2014, 21:12   #5
 
Zunft's Avatar
 
elite*gold: 0
Join Date: Mar 2013
Posts: 3,185
Received Thanks: 1,317
Quote:
Originally Posted by ​Tension View Post
Wie kommst du auf Wurzel?
Quote:
Originally Posted by Belur View Post
Mit der Wurzel kann ichs grad garnicht beschreiben. Ich weiß es nur noch aus der Vorlesung.




Da ein Quadrat immer auch ein Vielfaches ist, kannst du indem du die Wurzel ziehst prüfen welchen Wert der größte Vielfache hat.
Zunft is offline  
Thanks
1 User
Old 04/15/2014, 21:28   #6
 
​Tension's Avatar
 
elite*gold: 110
Join Date: Jun 2013
Posts: 599
Received Thanks: 510
Hätte meine Frage etwas besser Ausdrücken sollen, meinte eigentlich wieso er da eine Wurzel verwenden will wenn der Rest schon stimmt. Mein Fehler
​Tension is offline  
Reply


Similar Threads Similar Threads
[Java] Terme berechnen
08/06/2013 - Coding Releases - 7 Replies
Hi, für ein Projekt habe ich eine kleine Library geschrieben, mit der einfache mathematische Terme ausgerechnet werden können. neue Version: Folgendes wird unterstützt: * Konstanten (e, pi)
Aimbot math
04/22/2013 - C/C++ - 0 Replies
close
[Quest]math.cos und math.sin
08/22/2010 - Metin2 Private Server - 10 Replies
Hallo, anscheinend kennt Metin2 die Funktionen math.cos und math.sin nicht, gibt es trotzdem eine Möglichkeit die irgendwie zu benutzen? (Für den DT ;))
Math/var help
07/02/2009 - CO2 Private Server - 1 Replies
Ok simplifying this post alot. How do I transfer things already loaded into the source from a database into the useitem area? Maybe I'm over complicating things but I am not able to do it.. In my Database.cs I have Struct.SPoints Port = new Struct.SPoints(); loading in things from the database. I need a way to apply those values to a similar code in UseItem.cs where I have my public static void ScrollPointTele(int PointId, int MapEnd, int PointX, int PointY, ClientSocket CSocket)



All times are GMT +2. The time now is 16:12.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.