Hallo zusammen
Ich möchte ein eigenes PHP-Projekt, an dem ich ein wenig lange habe, starten.
Weiss jedoch nicht was ich machen könnte.
Es sollte für Übungszwecke dienen.
Kann mir jemand eine Aufgabe geben?
Hallo zusammen
Ich möchte ein eigenes PHP-Projekt, an dem ich ein wenig lange habe, starten.
Weiss jedoch nicht was ich machen könnte.
Es sollte für Übungszwecke dienen.
Kann mir jemand eine Aufgabe geben?
Ja sorry Spyx.
In dem Satz meine ich, dass ich gerne ein wenig arbeiten möchte und nicht einfach schreiben schreiben schreiben, sondern auch überlegen und nachdenken sollte.
Vom Schwierigkeitsgrad her bitte noch nicht zu schwer, da es auch zum Üben ist.
Ich habe bisher kleinere Internetpräsentationen mit Logins, mit MySQL gemacht.
Und danke für deine Antwort.
Kein Problem . Ich wollte dich nur darauf hinweisen, dass man nicht versteht, was du meinst.Zitat von Uelik
Es sollte halt etwas sein, was dich auch interessiert. Da du dich auch mit MySQL auskennst, kann es auch ruhig etwas Interaktives sein. Zu schwer dürfte wohl kein Projekt sein. Es könnte bloß Projekte geben, die zu groß sind.Zitat von Uelik
Willst du eher theoretische Aufgaben oder doch Praktische? Wie wäre es mit einem eigenen kleinen CMS, ein einfaches Forum, eine persönliche anpassbare Startseite oder dein persönliches Cloud-Zuhause?
Ja ein eigenes CMS wäre schon geil.
Ich kann kein JavaScript, daher wird es auch schwer, so ein Editor zu erstellen wie hier im eForum mit den BB-Codes etc.
Ich bin für alles offen, habe keine Ahnung was ich alles machen kann.
Ich hatte mal die Idee ein eigenes kleines Browsergame zu erstellen.
JavaScript kannst du lernen. Wenn du PHP kannst und OOP (objekt-orientierte Programmierung), dann stellt das keine große Herausforderung mehr da. Und für die BBCodes gibt es serverseitig z.B. folgenden Parser: HTML_BBCodeParser (auch in PHP-OOP geschrieben).Zitat von Uelik
Aber für ein eigenes kleines CMS brauchst du nicht unbedingt BBCodes. Das ist eine Funktionalität, die du auch noch später einbauen kannst, wenn du willst.
Das würde ich erst einmal sein lassen. Ein Browsergame ist schon das "höchste" was man mit PHP erstellen kann. Dafür brauchst du eine Menge Wissen, Arbeit, Zeit, Kritikfähigkeit, Planung, Chefqualitäten (alleine ist solch ein Projekt zu groß) und Erfahrungen im Spieldesign (ein Spiel, das keinen Spaß macht, spielt keiner).Zitat von Uelik
Machen kannst du alles . Die Frage ist nur, wie viel Geduld und Motivation du aufbringen willst und kannst.Zitat von Uelik
Schau dich ein bisschen in "deinem" Teil (die Webseiten, die du besuchst) des WWWs um. Was könntest du dort noch hinzufügen, was du (und eventuell Andere) noch brauchst. Dann schaust du, ob es so etwas schon gibt oder nicht.
Ich kann dir jetzt auch einfach einen Haufen Aufgaben geben, die rein theoretischer Natur sind. Dann geht es einfach nur darum dein Algorithmus-Wissen & -Können zu testen & zu steigern.
296 Aufgaben mit automatischem Lösungstester: Project Euler
Das dürfte doch wohl erst einmal reichen, oder ?
Nein habs begriffen
Momentan noch kein grosses Projekt.
Ich habe die 1. Frage bei Problem 1.
Ich habe folgenden Code momentan:If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
Wie kann ich jetzt überprüfen, ob es eine natürliche Zahl ist?PHP-Code:
<?
$natural_numbers = array();
$count = "0";
while($count > "0" and $count < "999") {
//Zahlen welche durch drei und durch 5 teilbar sind in ein Array schreiben
$durch_drei = $count/3;
$durch_fuenf = $count/5;
//Überprüfen ob Ergebnis eine natürliche Zahl ist?
array_push($natural_numbers, $count);
$count++;
}
$summe = "0";
$zahl = "0";
$count1 = count($natural_numbers);
while($zahl < $count1) {
//Aussummieren der Zahlen im Array
$zahl_im_array = $natural_numbers[$zahl];
$summe = $zahl_im_array+$summe;
$zahl++;
}
print '
<html>
<head>
</head>
<body>
<b>Anzahl der durch 3 und 5 teilbaren Zahlen unter 1000:</b> '.$summe.'
</body>
</html>';
?>
Du kannst die Zahl in einer Variable sichern, danach runden und dann die Zahl in der Variable und die gerundete Variable vergleichen. Wenn beide gleich sind, dann ist es eine natürliche Zahl. Wenn es unterschiedliche Zahlen sind, dann hat die Zahl Nachkommastellen.
Ansonsten habe ich schon zwei Anmerkungen:
Warum verwendest du nicht die For-Schleife (For-Schleife@PHP.net)?
Kennst du Modulo (Modulo@PHP.net)?
Ja Modulo kenne ich nicht, was soll das sein?
Mit for-schleifen kenne ich mich nicht aus. Habe es immer mit while gemacht.
Schau dir mal den Code an.
Ich habe noch herausgefunden das man mit folgendem Code eine Zahl überprüfen kann, ob sie ganz ist:
Code von mir:Code:if(is_int($zahl))
Leider funktioniert es nicht :P Was ist da dran falsch?PHP-Code:
<?
$natural_numbers = array();
$count = "0";
while($count > "0" and $count < "999") {
//Zahlen welche durch drei und durch 5 teilbar sind in ein Array schreiben
$durch_drei = $count/3;
$durch_fuenf = $count/5;
if(is_int($durch_drei) and is_int($durch_fuenf)) {
//Überprüfen ob Ergebnis eine natürliche Zahl ist und push in array
array_push($natural_numbers, $count);
}
$count++;
}
$summe = "0";
$zahl = "0";
$count1 = count($natural_numbers);
while($zahl < $count1) {
//Aussummieren der Zahlen im Array
$zahl_im_array = $natural_numbers[$zahl];
$summe = $zahl_im_array+$summe;
$zahl++;
}
print '
<html>
<head>
</head>
<body>
<b>Anzahl der durch 3 und 5 teilbaren Zahlen unter 1000:</b> '.$summe.'
</body>
</html>';
?>
In Zeile acht liegt der Fehler. Die Zahl muss durch drei oder durch fünf teilbar sein (ein oder, kein xor). Du hast und verwendet.Zitat von Uelik
Ich habe das Wort Modulo verlinkt. Der erste Absatz der Webseite dahinter erklärt Modulo gut.Zitat von Uelik
Dann schau Dir doch einmal den Wikipedia-Artikel über For-Schleifen an und die PHP-Dokumentation dazu (habe ich oben verlinkt).Zitat von Uelik
Hallo Spyx
Ich habe and durch or ersetzt.
Nun kannst du mal selber sehen, was er ausgibt: https://uelikramer.ch/problem_1.php
Code:
PHP-Code:
<?
$natural_numbers = array();
$count = "0";
while($count > "0" and $count < "999") {
//Zahlen welche durch drei und durch 5 teilbar sind in ein Array schreiben
$durch_drei = $count/3;
$durch_fuenf = $count/5;
if(is_int($durch_drei) or is_int($durch_fuenf)) {
//Überprüfen ob Ergebnis eine natürliche Zahl ist und push in array
array_push($natural_numbers, $count);
}
$count++;
}
$summe = "0";
$zahl = "0";
$count1 = count($natural_numbers);
while($zahl < $count1) {
//Aussummieren der Zahlen im Array
$zahl_im_array = $natural_numbers[$zahl];
$summe = $zahl_im_array+$summe;
$zahl++;
}
print '
<html>
<head>
</head>
<body>
<b>Anzahl der durch 3 und 5 teilbaren Zahlen unter 1000:</b> '.$summe.'
</body>
</html>';
?>
Diesmal liegt der Fehler in den Zeilen drei und vier. Du definierst $count als 0 und in die darauf folgende Schleife wird solange wiederholt, wie $count größer 0 und kleiner als 999 ist. Die Schleife wird noch vor dem ersten Start abgebrochen, da $count zu klein ist.
Außerdem ist die maximale Größe der Schleife 999, also muss es heißen: $count kleiner 1000, da 999 durch drei teilbar und somit auch noch hinzu addiert werden muss.
Oke bin jetzt bei Problem Nummer 2.
Sollte doch klappen?PHP-Code:
<?
$max = "4000000"; //Four Million
$x1 = "1";
$x2 = "2";
zahlen();
function zahlen() {
$x1 = $x1+$x2;
$x2 = $x1+$x2;
if(is_int($x1/2)) {
$summe = $summe+$x1;
}
if(is_int($x2/2)) {
$summe = $summe+$x2;
}
pruefen();
}
function pruefen() {
if($summe>$max) {
ausgeben();
} else {
zahlen();
}
}
function ausgeben() {
print $summe;
}
?>
Da kommt bei mir auf dem Server der Fehler:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@uelikramer.ch and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Ich lasse das zweite Problem jetzt erst einmal liegen. Erst einmal eine Bewertung deines Skriptes. Als Vergleich kannst du dir ja mal mein Skript anschauen, was ich unten geschrieben habe.
- Achte bitte genau auf deine Einrückungen. Das erleichtert die Lesbarkeit von deinem Skript.
- Bringe deine Kommentare richtig an (an der richtigen Stelle). Die Kommentare sollten so geschrieben sein, dass sie jeder leicht versteht. Und sie sollten die Funktionsweise deines Programme gut und kurz erläutern.
- Zahlen kann man auch ohne Gänsefüßchen (" & ') schreiben. So werden deine "Zahlen" erst einmal als Text gespeichert und dann für die weiteren Operationen intern umgewandelt. PHP ist eine der wenigen Sprachen, die einen so laschen Umgang mit Variablentypen hat. Und selbst dabei Grenzen - z.B. durch Skripte von anderen Programmieren, die genau auf die Variablentypen achten (aus Sicherheitsgründen).
- Valides (x)HTML als Ausgabe gebührt eigentlich jedem, der sich Webmaster/-Designer o.Ä. schimpft.
Da du die Aufgabe ja gelöst hast, bekommst du auch Zugriff auf die "offizielle Lösung". Da drin steht, dass diese Variante nicht sonderlich effektiv ist. Sie ist aber durchaus eine annehmbare Lösung. Vor allem ist sie relativ einfach - das gebietet z.B. das KISS-Prinzip ("Keep it simple and stupid."). Wenn du die ganze Sache mathematisch noch vereinfachen kannst, sodass die Lösung effektiver ist, dann solltest du das ganz immer gut dokumentieren, damit jeder deine "Lösung" versteht (auch du nach ein paar Wochen ).
Und hier noch meine Variante:Edit:PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<title>Projekt Euler - Aufgabe 1</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Projekt Euler - Aufgabe 1</h1>
<h2>Aufgabenstellung</h2>
<p>If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.</p>
<p>Find the sum of all the multiples of 3 or 5 below 1000.</p>
<h2>Lösung:</h2>
<?php
/* Aufgabenstellung:
* If we list all the natural numbers below 10 that are
* multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these
* multiples is 23.
*
* Find the sum of all the multiples of 3 or 5 below 1000.
*/
//die gesuchte Summe initialisieren
$sum = 0;
//Für jede Zahl ab 1 kleiner 1000, da 1000 nicht mehr gefordert ist
for ($i = 1; $i < 1000; $i++) {
//wenn die Zahl modulo 3 oder 5 null ist (d.h. durch 3 oder 5 teilbar ist), ...
if (($i % 3 == 0) or ($i % 5 == 0)) {
//... dann addiere sie zur gesuchten Summe
$sum += $i;
}
}
//Die Lösung ausgeben
echo '<p>Die Summe aller Mehrfachen von 3 oder 5 unter 1000 beträgt: ' . $sum . '.</p>';
?>
</body>
</html>
Der PHP-Parser kommt nicht mit deinen verschachtelten Funktionsaufrufen und -definitionen klar. Eine Funktion muss erst komplett existieren, bevor die Möglichkeit besteht, dass man sie aufrufen kann. Deine beide Funktionen rufen sich aber gegenseitig auf und so können Beide nie vollständig definiert werden.
Hey, nicht gleich aufgeben. Dann musst du halt einfach wieder zurück ans Zeichenbrett. Du wolltest doch Aufgaben, wo man nicht nur stupide programmieren muss, sondern zuerst Köpfchen einsetzen muss. Also schau dir Problem zwei noch einmal an und überlege, wie du es sonst noch lösen kannst.Zitat von Uelik
Bist du dir sicher, dass du nicht doch noch ein paar theoretische Aufgaben willst, um dein Wissen mit PHP zu festigen, bevor du auf das Internet los gehst ?Zitat von Uelik
Ich hab's jetzt fast, denke ich:
Was ist hier noch falsch?PHP-Code:
<?
/*
*Aufgabe:
*********
*Each new term in the Fibonacci sequence is generated by adding the previous
*two terms. By starting with 1 and 2, the first 10 terms will be:
*1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
*
*Find the sum of all the even-valued terms in the sequence which do not
*exceed four million.
*/
$x1 = "1"; //Startzahl 1
$x2 = "2"; //Startzahl 2
$summe = "2"; //Startsumme
function zahlen() {
$x1 = $x1+$x2;
$x2 = $x1+$x2;
if(is_int($x1/2)) {
$summe = $summe+$x1;
}
if(is_int($x2/2)) {
$summe = $summe+$x2;
}
}
function ausgabe() {
print $summe;
}
if($x2<="4000000") {
zahlen();
} else {
ausgabe();
}
?>
Die Funktionen sind ja jetzt klar beendet und sollte eigentlich gehen, kommt jedoch nur ein blankes Fenster
wieso nicht echo?PHP-Code:
print $summe;
ich steig da bei deinem nicht durch, ich sehe richtige ansätze, aber teils unlogische sachen...
aber sollte in etwa so sein:
ausgabe von summe: 4613732PHP-Code:
$x1=1;
$x2=2;
while( $x2<4000000 ){
if(is_int($x2/2)){ $summe=$summe+$x2;} //x1 muss gar nicht... da es das vorherige x2 ist
$x3=$x1+$x2; // x3= zwischenvariable, zum beibahlten von x1 und x2
$x1=$x2;
$x2=$x3;
}
echo $x3; //zum testen
echo $summe;
hier überschreitet der letzte durchgang(also x2) die 4mil, aber es wird davor summiert und nicht danach
und da $summe rund ist (mit 2 endet) liegt eine richtige vorgehensweise nahe
nein nicht wirklich ^^
liegt aber daran, dass ich eine ähnliche aufgabe in einer klausur schon hatte und gewissen bausteine schon bei dir vorhanden waren
am besten kommt man da drauf, wenn man am ende (oder auch zwischendurch) einige echos einbaut, um zu gucken, ob die zahlen auch zum ende hin z.B. stimmen
programmiere mit php aber auch erst seit anfang des jahres, aber habe da schon viel übung drinnen, weil ich fast jede aufgabe von meinen mitschülern zumindest als ansatz vormachen musste
geil ^^
Habe Probleme bei Problem 3:
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?Wie kann ich jetzt überprüfen ob Zahl $i eine Primzahl ist?PHP-Code:
<?
$zahl = "600851475143";
for($i = $zahl, $i > "2", $i--)
{
}
?>
Liebe Grüsse
mensch, das sind sachen ...
zahlen am bestne ohne " " , die häckchen nur nutzen wenn du mal von der zahl die 1. stelle oder so brauchst, sonst besser nicht
ansonstne scheint mir der ansatz richtig zu sein, fehlt nur noch eine kleinigkeit ^^
dann machst du folgendes rein:
ziemlich nette funktion das mit dem "is_int" werde ich ab jetzt oft gebrauchen ^^PHP-Code:
<?
$zahl = 600851475143;
for($i = $zahl, $i > 2, $i--)
{
if(is_int($zahl/$i) { // wenn es ganze zahl ist, dann ist es der teiler ;)
$primefactor=$i; // primfactor ist nun das jetzige i (das ganzzahlig die zahl teilen konnte)
$i=1; // for-schleife wird damit abgebrochen, da größter teiler gefunden
}
}
echo "von der zahl".$zahl."ist der größte Teiler die".$primefactor;
?>
so willst du mal was zum denken?
es sei ein 20x20 feld gegeben , enthalten sind tiernamen (kennst bestimmt solche buchstabenquadrate oder?) ob nun als textdatei oder auch per hand eingeben ist egal
das quadrat soll für den user sichtbar dargestellt werden
wenn ein tiername eingegeben wird, soll danach gesucht werden und ausgebenen werden, ob der tienrmae vorhanden ist oder nicht, wenn ja soll es auch farblich markiert werden
nach möglichkeit sollen alle richtungen abgedeckt werden, kannst dich auch erstmal nur auf links nach rechts fokussieren
soo, das ist eine nette aufgabe ^^ hat mir eine 1 gebraucht, hatten 2 wochen zeit, habe es aber innerhalb von ca 5-6 arbeitsstunden "vollbracht"
als ersten tipp kriegst du "mehrdimensionales array"
also $array[0][0]="A";, usw, was davon nun die x oder y achse im array ist, ist wurscht, musst dann nur damit weiter machen
geh am besten so vor wie in der aufgabenstellung, also erstmal das array als quadrat sichtbar machen, dann das Suchen, dann die ausgabe ob vorhanden und dann das farbliche markieren
also von der idee her, wie du es umsetzen willst
hier das array:
PHP-Code:
$array[0][0]="A";
$array[0][1]="M";
$array[0][2]="S";
$array[0][3]="E";
$array[0][4]="L";
$array[0][5]="L";
$array[0][6]="E";
$array[0][7]="R";
$array[0][8]="O";
$array[0][9]="F";
$array[0][10]="M";
$array[0][11]="R";
$array[0][12]="U";
$array[0][13]="W";
$array[0][14]="D";
$array[0][15]="N";
$array[0][16]="A";
$array[0][17]="B";
$array[0][18]="O";
$array[0][19]="A";
$array[1][0]="L";
$array[1][1]="E";
$array[1][2]="G";
$array[1][3]="I";
$array[1][4]="U";
$array[1][5]="H";
$array[1][6]="E";
$array[1][7]="G";
$array[1][8]="N";
$array[1][9]="A";
$array[1][10]="L";
$array[1][11]="H";
$array[1][12]="C";
$array[1][13]="S";
$array[1][14]="N";
$array[1][15]="A";
$array[1][16]="N";
$array[1][17]="D";
$array[1][18]="U";
$array[1][19]="L";
$array[2][0]="B";
$array[2][1]="O";
$array[2][2]="C";
$array[2][3]="K";
$array[2][4]="B";
$array[2][5]="U";
$array[2][6]="E";
$array[2][7]="N";
$array[2][8]="A";
$array[2][9]="Y";
$array[2][10]="H";
$array[2][11]="O";
$array[2][12]="R";
$array[2][13]="N";
$array[2][14]="I";
$array[2][15]="S";
$array[2][16]="S";
$array[2][17]="E";
$array[2][18]="H";
$array[2][19]="L";
$array[3][0]="N";
$array[3][1]="H";
$array[3][2]="A";
$array[3][3]="H";
$array[3][4]="E";
$array[3][5]="H";
$array[3][6]="S";
$array[3][7]="U";
$array[3][8]="A";
$array[3][9]="L";
$array[3][10]="U";
$array[3][11]="C";
$array[3][12]="H";
$array[3][13]="S";
$array[3][14]="T";
$array[3][15]="S";
$array[3][16]="R";
$array[3][17]="L";
$array[3][18]="U";
$array[3][19]="I";
$array[4][0]="R";
$array[4][1]="P";
$array[4][2]="N";
$array[4][3]="E";
$array[4][4]="Z";
$array[4][5]="N";
$array[4][6]="A";
$array[4][7]="W";
$array[4][8]="R";
$array[4][9]="E";
$array[4][10]="H";
$array[4][11]="D";
$array[4][12]="R";
$array[4][13]="A";
$array[4][14]="P";
$array[4][15]="O";
$array[4][16]="E";
$array[4][17]="L";
$array[4][18]="R";
$array[4][19]="G";
$array[5][0]="E";
$array[5][1]="A";
$array[5][2]="I";
$array[5][3]="S";
$array[5][4]="R";
$array[5][5]="E";
$array[5][6]="W";
$array[5][7]="I";
$array[5][8]="E";
$array[5][9]="S";
$array[5][10]="E";
$array[5][11]="L";
$array[5][12]="R";
$array[5][13]="E";
$array[5][14]="C";
$array[5][15]="H";
$array[5][16]="L";
$array[5][17]="I";
$array[5][18]="U";
$array[5][19]="A";
$array[6][0]="P";
$array[6][1]="V";
$array[6][2]="V";
$array[6][3]="C";
$array[6][4]="E";
$array[6][5]="T";
$array[6][6]="R";
$array[6][7]="A";
$array[6][8]="D";
$array[6][9]="W";
$array[6][10]="A";
$array[6][11]="P";
$array[6][12]="C";
$array[6][13]="H";
$array[6][14]="C";
$array[6][15]="E";
$array[6][16]="S";
$array[6][17]="R";
$array[6][18]="G";
$array[6][19]="T";
$array[7][0]="I";
$array[7][1]="I";
$array[7][2]="G";
$array[7][3]="H";
$array[7][4]="T";
$array[7][5]="S";
$array[7][6]="O";
$array[7][7]="B";
$array[7][8]="N";
$array[7][9]="A";
$array[7][10]="L";
$array[7][11]="H";
$array[7][12]="S";
$array[7][13]="S";
$array[7][14]="O";
$array[7][15]="C";
$array[7][16]="T";
$array[7][17]="G";
$array[7][18]="N";
$array[7][19]="O";
$array[8][0]="V";
$array[8][1]="A";
$array[8][2]="N";
$array[8][3]="W";
$array[8][4]="T";
$array[8][5]="U";
$array[8][6]="D";
$array[8][7]="A";
$array[8][8]="A";
$array[8][9]="P";
$array[8][10]="T";
$array[8][11]="E";
$array[8][12]="U";
$array[8][13]="Z";
$array[8][14]="Y";
$array[8][15]="H";
$array[8][16]="E";
$array[8][17]="B";
$array[8][18]="A";
$array[8][19]="R";
$array[9][0]="M";
$array[9][1]="N";
$array[9][2]="I";
$array[9][3]="A";
$array[9][4]="A";
$array[9][5]="G";
$array[9][6]="N";
$array[9][7]="R";
$array[9][8]="R";
$array[9][9]="M";
$array[9][10]="I";
$array[9][11]="M";
$array[9][12]="S";
$array[9][13]="I";
$array[9][14]="O";
$array[9][15]="T";
$array[9][16]="R";
$array[9][17]="L";
$array[9][18]="K";
$array[9][19]="H";
$array[10][0]="M";
$array[10][1]="I";
$array[10][2]="P";
$array[10][3]="N";
$array[10][4]="N";
$array[10][5]="N";
$array[10][6]="O";
$array[10][7]="S";
$array[10][8]="A";
$array[10][9]="I";
$array[10][10]="L";
$array[10][11]="E";
$array[10][12]="L";
$array[10][13]="E";
$array[10][14]="T";
$array[10][15]="T";
$array[10][16]="A";
$array[10][17]="R";
$array[10][18]="C";
$array[10][19]="S";
$array[11][0]="E";
$array[11][1]="U";
$array[11][2]="L";
$array[11][3]="R";
$array[11][4]="S";
$array[11][5]="A";
$array[11][6]="K";
$array[11][7]="C";
$array[11][8]="W";
$array[11][9]="H";
$array[11][10]="T";
$array[11][11]="T";
$array[11][12]="N";
$array[11][13]="G";
$array[11][14]="E";
$array[11][15]="M";
$array[11][16]="A";
$array[11][17]="S";
$array[11][18]="U";
$array[11][19]="H";
$array[12][0]="R";
$array[12][1]="B";
$array[12][2]="W";
$array[12][3]="B";
$array[12][4]="E";
$array[12][5]="L";
$array[12][6]="L";
$array[12][7]="H";
$array[12][8]="H";
$array[12][9]="C";
$array[12][10]="I";
$array[12][11]="A";
$array[12][12]="N";
$array[12][13]="E";
$array[12][14]="A";
$array[12][15]="N";
$array[12][16]="I";
$array[12][17]="A";
$array[12][18]="K";
$array[12][19]="C";
$array[13][0]="E";
$array[13][1]="B";
$array[13][2]="B";
$array[13][3]="E";
$array[13][4]="E";
$array[13][5]="I";
$array[13][6]="E";
$array[13][7]="E";
$array[13][8]="E";
$array[13][9]="S";
$array[13][10]="S";
$array[13][11]="U";
$array[13][12]="T";
$array[13][13]="O";
$array[13][14]="I";
$array[13][15]="F";
$array[13][16]="R";
$array[13][17]="N";
$array[13][18]="C";
$array[13][19]="V";
$array[14][0]="I";
$array[14][1]="E";
$array[14][2]="L";
$array[14][3]="O";
$array[14][4]="F";
$array[14][5]="T";
$array[14][6]="E";
$array[14][7]="W";
$array[14][8]="D";
$array[14][9]="H";
$array[14][10]="E";
$array[14][11]="N";
$array[14][12]="B";
$array[14][13]="C";
$array[14][14]="I";
$array[14][15]="B";
$array[14][16]="E";
$array[14][17]="T";
$array[14][18]="V";
$array[14][19]="F";
$array[15][0]="H";
$array[15][1]="V";
$array[15][2]="M";
$array[15][3]="L";
$array[15][4]="R";
$array[15][5]="F";
$array[15][6]="O";
$array[15][7]="G";
$array[15][8]="O";
$array[15][9]="V";
$array[15][10]="E";
$array[15][11]="R";
$array[15][12]="H";
$array[15][13]="A";
$array[15][14]="O";
$array[15][15]="P";
$array[15][16]="D";
$array[15][17]="I";
$array[15][18]="K";
$array[15][19]="A";
$array[16][0]="E";
$array[16][1]="L";
$array[16][2]="E";
$array[16][3]="E";
$array[16][4]="L";
$array[16][5]="L";
$array[16][6]="A";
$array[16][7]="R";
$array[16][8]="A";
$array[16][9]="U";
$array[16][10]="P";
$array[16][11]="E";
$array[16][12]="I";
$array[16][13]="K";
$array[16][14]="R";
$array[16][15]="F";
$array[16][16]="R";
$array[16][17]="L";
$array[16][18]="R";
$array[16][19]="H";
$array[17][0]="R";
$array[17][1]="E";
$array[17][2]="G";
$array[17][3]="E";
$array[17][4]="L";
$array[17][5]="E";
$array[17][6]="N";
$array[17][7]="M";
$array[17][8]="K";
$array[17][9]="N";
$array[17][10]="W";
$array[17][11]="E";
$array[17][12]="S";
$array[17][13]="P";
$array[17][14]="E";
$array[17][15]="A";
$array[17][16]="A";
$array[17][17]="O";
$array[17][18]="A";
$array[17][19]="C";
$array[18][0]="R";
$array[18][1]="I";
$array[18][2]="N";
$array[18][3]="D";
$array[18][4]="E";
$array[18][5]="B";
$array[18][6]="U";
$array[18][7]="A";
$array[18][8]="T";
$array[18][9]="E";
$array[18][10]="S";
$array[18][11]="I";
$array[18][12]="E";
$array[18][13]="M";
$array[18][14]="A";
$array[18][15]="U";
$array[18][16]="M";
$array[18][17]="P";
$array[18][18]="C";
$array[18][19]="S";
$array[19][0]="T";
$array[19][1]="F";
$array[19][2]="L";
$array[19][3]="O";
$array[19][4]="W";
$array[19][5]="P";
$array[19][6]="A";
$array[19][7]="N";
$array[19][8]="T";
$array[19][9]="H";
$array[19][10]="E";
$array[19][11]="R";
$array[19][12]="N";
$array[19][13]="R";
$array[19][14]="E";
$array[19][15]="T";
$array[19][16]="S";
$array[19][17]="E";
$array[19][18]="E";
$array[19][19]="S";
@dennis13393
Eine kleine Bitte: Schreibe hier bitte nicht die fertigen Skripte für Uelik. Es bringt ihm ja nicht sonderlich viel, wenn er die komplette Lösung hat. Ich persönlich finde, dass man besser mit Tipps, Links und eventuell Pseudocode helfen kann.
@Uelik
Was macht denn eine Primzahl aus? Und dann schau mal, ob du dir eine Funktion schreiben kannst, die eine Zahl daraufhin überprüft, ob sie eine Primzahl ist oder nicht.
Edit:
Ich muss noch anmerken, dass die Zahl 600851475143 kein Integer mehr ist, sondern eine Fließkommazahl. Somit funktioniert das Konzept mit is_int nicht mehr.
Wenn man wissen will, ob eine Fließkommazahl durch eine andere Fließkommazahl ohne Rest teilbar ist, dann kann man folgendes verwenden:
PHP-Code:
if (fmod($zahl, $teiler) == 0) {
/* tue, wenn die Zahl durch Teiler ohne Rest teilbar ist */
}
hmm ok, stimmt sollte lieber nicht gleich die lösung sagen
wieso ist es denn nun eine fließkommazahl? hat der integer dort schon seine maximale zahl überschritten oder wie?
und wie sieht's als string aus? ... aufgaben interessieren mich auch brennend ^^
probiere mich da jetzt auch mal dran...
@ uelik, habe den fehler gefunden ^^ aber poste nicht korrigiert, da du es am besten selbst rausfinden solltest
ach, ich habe das glaube ich falsch verstanden... also die faktoren die durch die zahl teilbar sind, sollen nur primzahlen sein? hmm... ok
bin mitlerweile bei aufgabe 7, denke das schwerste am ganzen ist die optimierung... denn wenn das ganze mehr als 60sek dauert, dann ist bei php ende...
also die lösung muss möglichst schnell errechnet werden, musste ich bei einer aufgabe hauptsächlich über die optimierung anchdenken, da es 60+sek gedauert hat, bin durch paar kleinigkeiten auf <1sek gekommen...
jetzt muss ich die 10001. primzahl rausfinden, 1000. kriege ich inerhalb von ca 5sek hin, 10001 dauert mehr als 60 sek....
Ist nicht böse gemeint, aber Uelik will ja etwas lernen.Zitat von dennis13393
Jep, die Zahl ist größer als 2.147.483.648 (2^31 - 1 Bit für das Vorzeichen). Dann muss man in PHP entweder auf Fließkommazahlen zurückgreifen oder auf Strings. Wobei man dann eine Bibliothek (selbst-geschrieben oder im Internet gefunden) nutzen muss, die mathematische Funktionen bei Strings anwendet.Zitat von dennis13393
Sieb des Eratosthenes ? WikipediaZitat von dennis13393