Euler Problem 29



  • Hallo.
    ICh beschäftige mich mit Euler Problemen. Das ist eine Seite, auf der man mathematische Probleme lösen kann.
    Hier ist der Link, der die Aufgabe beschreibt.http://projecteuler.net/problem=29

    Hier ist meine Lösung. leider ist sie nicht richtig. Ich habe zu dem Forum dieser Aufgabe erst nach dem Lösen Zugang , deshalb wende ich mich an euch. Vielleicht kann mir jemand helfen.

    Hier ist meine Lösung.

    public class Problem0029 extends EulerProblem {
    
    	@Override
    	protected void startEulerProblem() {
    		HashSet<Integer> numberList	= new HashSet<Integer>();
    
    		int max	= 100;
    
    		for (int i = 2; i <= max; i++){
    			for (int j = 2; j <= max; j++){
    				numberList.add(new Integer((int)Math.pow(i,j)));
    			}
    		}
    
    		eulerProblemSolution	= numberList.size();		
    	}
    
    	public static void main(String argv[]){
    		EulerProblem.startProblem(new Problem0029() , 1);
    	}
    
    }
    


  • Dein Code sieht super aus. Da muß ein anderer Fehler sein. Zumal, Euler29 bestimmt nicht soo einfach ist.
    Math.pow macht nur mit double, oder?
    Die Zahlen sind ein wenig zu groß, um da noch genau zu sein. Vielleicht ist das das Problem. Kannste BigInteger nehmen?

    Oder kackt dann die Rechenzeit ein und Du mußt darüberhinaus noch Mathetricks erfinden, damit es nicht monatelang dauert? Kann alles bei Euler passieren.



  • Danke der tipp mt Integer => zu Double war perfekt. Das habe ich irgendwie übersehen



  • Verzichte auf double und benutze einen BigInteger. Casten bringt nichts. 100^100 liegt einfach weit weg.


Anmelden zum Antworten