Czesc chciałem sie was spytac czy dobrze zrobilem schemat blokowy do algorytmu "Algorytm sprawdzający czy podana liczba ma przynajmniej 3 dzielniki"
Oto moje dzielo http://fotoo.pl/zdjecia/files/2011-09/328079d7.jpg
Czesc chciałem sie was spytac czy dobrze zrobilem schemat blokowy do algorytmu "Algorytm sprawdzający czy podana liczba ma przynajmniej 3 dzielniki"
Oto moje dzielo http://fotoo.pl/zdjecia/files/2011-09/328079d7.jpg
Lol, bez przesady, w schemacie blokowym nie chodzi o to, żeby wkleić algorytm do jednego z nich.
To wez pomoz, bo pani mi to zadala na 1 lekcji, a moi kumple podostawali o wiele latwiejsze.
kaluza88 napisał(a)
To wez pomoz, bo pani mi to zadala na 1 lekcji, a moi kumple podostawali o wiele latwiejsze.
50zł. Jak chętny jesteś to pisz PW.
To ma byc ironia czy cos? Algorytm dla calkiem poczatkujacych, ale dobra widze, ze nawet podpowiedzi czy cos nie dostane.
Musisz rozłożyć ten algorytm. Przede wszystkim masz tam pętlę. Strzałeczki musisz porobić do góry. Na pewno miałeś na lekcji.
Teraz jest dobrze?
http://fotoo.pl/zdjecia/files/2011-09/b1f75d23.jpg
To mnożenie rozbij na pętlę (warunek sprawdzający czy się zakończyła).
Nie znam Twojego nauczyciela, ale moim zdaniem schematu blokowego nie ma. W jaki sposób uzyskujesz rozkład liczby n na czynniki pierwsze?
Btw, czy konieczne jest sprawdzanie, że wykładniki są liczbami naturalnymi.
81nYX :-)
Taki kod
int gr;
int ile;
int factor;
for(int i=2;i<=upperBound;i++)
{
gr=(int)Math.sqrt(i);
ile=0;
factor=2;
while(ile<2 && factor<=gr)
{
if((i % factor)==0)
{
ile++;
}
factor++;
}
}
wykonuje się u mnie (dla upperBound=10 mln.) około 1,5 sekundy.
Ulepszenie polegające na tym, że po znalezieniu pierwszego dzielnika d wykonujemy dzielenie j=i/d i szukamy dzielnika >=d, różnego od d dla liczby j skraca czas dwukrotnie.
Chyba w temacie nie zostało powiedziane o jakie dzielniki chodzi. Tak więc każda liczba n ma dwa dzielniki trywialne 1 i n. Tak więc w takim przypadku wystarczyło by sprawdzić czy nie ma jakiegoś trzeciego dzielnika - czyli wystarczyło by sprawdzić czy liczba jest pierwsza.
http://pl.wikipedia.org/wiki/Dzielnik