ďťż
Podstrony
|
telcocafemam taki problem musze rozwiazac te dwa zadania na zajecia z informatyki.cale rozwiazanie obu zadan trzeba napisac w php z czego ja nie jestem dobry prosił bym bardzo o pomoc w zrobieniu tego zadania poniewaz musze je zrobic na zaliczenie semestralne i mam na to tylko 2 tygodnie i nie zupelnie wiem co mam zrobic. wiec bym prosil osoby które sie znaja na takich zeczach zeby mi pomogly w jaki kolwiek sposób. za wszelka pomoc wielkie dzieki Zadanie 1 Specjalne liczby pierwsze Specjalną liczbą pierwszą będziemy nazywali taką liczbę pierwszą, której suma cyfr jest też liczbą pierwszą. Na przykład 41 jest specjalną liczbą pierwszą bo jest liczbą pierwszą i suma jej cyfr wynosi 5, która to liczba jest też liczbą pierwszą. Dla podanej liczby naturalnej N < 100000000 wyznacz ilość specjalnych liczb pierwszych mniejszych od N Dane wejściowe składają się z pewnej liczby linii, każda linia zawiera jedną liczbę naturalną N. Ostatnia linia zawiera liczbę 0 i oznacza koniec wprowadzania danych. Dane wejściowe wprowadzane są za pomocą pojedynczego pola tekstowego. Jako wynik należy podać w kolejnych liniach wprowadzoną liczbę N oraz ilość specjalnych liczb pierwszych mniejszych od N Przykład: 3 30 0 Wynik: 3 1 30 7 Zadanie 2 Dwie drabiny Przy wąskiej ulicy o szerokości d, po obu jej stronach stoją dwa wysokie budynki o prostych równych ścianach prostopadłych do płaszczyzny ulicy. Na ulicy stawiamy dwie drabiny o długościach a i b, tak, że każda z nich opiera się o inny budynek. Dół drabiny stoi na ulicy i opiera się o przeciwległy budynek niż ten o który opiera się góra drabiny. Drabiny przecinają się na wysokości c nad płaszczyzną ulicy. Znając długości drabin i wysokość punktu przecięcia wyznacz szerokość ulicy d. Dane wejściowe składają się z jednej linii w których znajdują się 3 liczby rzeczywiste a, b, c oddzielone spacjami. Wynik należy podać w postaci liczby rzeczywistej oznaczającej szerokość ulicy oraz w postaci schematycznego rysunku. Jeżeli przy podanych danych wejściowych nie ma rozwiązania należy wypisać tekst Brak rozwiązania Fajne zadania masz. Posiedziałem 20 minut nad pierwszym i zrobiłem: <?php if($_GET['tryb']!=='sprawdz') //jezeli nie sa podane liczby i ma tylko tabelke wyswietlic { echo '<form action="index.php?tryb=sprawdz" method="post"> <textarea name="dane"></textarea> <input type="submit" value="wyslij" /> </form>'; } else //jezeli są podane { $tablica_danych = explode("\n", $_POST['dane']); //rozbijam dane z textarea, żeby każda linia była elementem w tablicy foreach($tablica_danych as $element) //przejeżdżam przez tablicę danych { if($element!=0) //jeżeli nie jest to element kończący tzn. nie jest to zero { unset($liczba_specjalnych_liczb); //wywalamy liczbę specjalnych liczb z poprzedniego przebiegu, bo potem robi problemy. if($element>=7) $liczba_specjalnych_liczb = 4; //dodajemy do liczby specjalnych liczb pierwszych cyfry 2, 3, 5, 7, które to nie są wykrywane jako liczby pierwsze przezmój skrypt if($element<7 && $element>5) $liczba_specjalnych_liczb = 3; //jeżeli element jest mniejszy od 7 to do liczby specjalnych liczb pierwszych nie dodajemy 7 itd. if($element<5 && $element>3) $liczba_specjalnych_liczb = 2; if($element<3 && $element>2) $liczba_specjalnych_liczb = 1; for($i=1;$i<$element;$i++) //robimy pętelkę, aby sprawdzić, ile mamy zwykłych liczb pierwszych { if($i%2!=0 && $i%3!=0 && $i%5!=0 && $i%7!=0) /* i tu jest test, czy licznik pętli jest cyfrą pierwszą. jak pewnie wszyscy wiedzą ;) aby sprawdzić, czy dana cyfra jest pierwsza dzielimy ją przez 2, 3, 5 i 7. Jeżeli się przez nie nie podzieli to znaczy, że przez żadną inną się też nie podzieli */ { $i = (string) $i; // rzutujemy $i do typu string, aby móc poźniej skorzystać z offsetów $suma_cyfr = $i{0}+$i{1}+$i{2}+$i{3}+$i{4}+$i{5}+$i{6}+$i{7}+$i{8}+$ i{8}; //sumujemy offsety, aby uzyskać sumę cyfr if($suma_cyfr%2!=0 && $suma_cyfr%3!=0 && $suma_cyfr%5!=0 && $suma_cyfr%7!=0) // sprawdzamy, czy suma cyfr jest liczbą pierwszą { $liczba_specjalnych_liczb++; //.jeżeli tak, to powiększamy liczbę specjalnych liczb pierwszych o jeden } } } echo $element.' '.$liczba_specjalnych_liczb.'<br />'; // wyświetlamy element i liczbę specjalnych liczb pierwszych } // else exit; //a jeżeli jest to zero to kończymy pracę. } } ?> Jeżeli źle się wyświetli możesz go ściągnąć STĄD |
|||
Sitedesign by AltusUmbrae. |