[Algorytmy][C++] Liczba dzielników, największa wartość

agggnes
Użytkownik
Użytkownik
Posty: 87
Rejestracja: 21 gru 2011, o 21:27
Płeć: Kobieta
Podziękował: 18 razy

[Algorytmy][C++] Liczba dzielników, największa wartość

Post autor: agggnes »

1) Napisz program obliczający ilość całkowitych dzielników liczby podanej przez użytkownika.
2) Napisz algorytm, który wypisuje największą z liczb podanych z klawiatury wraz z informacją, ile razy liczba ta wystąpiła w ciągu. Informacja o ilości liczb jest wartością podawaną na początku działania algorytmu. /z wypisaniem największej liczby sobie poradzę, prosiłabym bardziej o pomoc z uzyskaniem informacji, ile razy liczba ta wystąpiła w ciągu/.
3) Napisz program, który pobiera na wejściu ciąg liczb rzeczywistych aż do momentu, gdy wprowadzone zostanie 0 /z tą częścią raczej sobie poradzę/, i jako wynik wyświetla największą ilość podanych kolejno liczb dodatnich /tu mam już problem/.

Jeśli znalazłby się ktoś, kto chciałby pomóc choć w jednym zadaniu, z góry dziękuję:)
Ostatnio zmieniony 9 lut 2012, o 23:14 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Awatar użytkownika
ares41
Użytkownik
Użytkownik
Posty: 6499
Rejestracja: 19 sie 2010, o 08:07
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 142 razy
Pomógł: 922 razy

[Algorytmy][C++] Liczba dzielników, największa wartość

Post autor: ares41 »

2. W pętli for stwórz sobie zmienną która będzie zwiększała swoją wartość o jeden, gdy napotka interesującą nas liczbę.
Awatar użytkownika
cyberciq
Użytkownik
Użytkownik
Posty: 450
Rejestracja: 19 kwie 2010, o 15:03
Płeć: Mężczyzna
Podziękował: 5 razy
Pomógł: 43 razy

[Algorytmy][C++] Liczba dzielników, największa wartość

Post autor: cyberciq »

1. sprawdzasz w pętli czy dana liczba jest podzielna przez liczby całkowite zaczynając od 2 do pierwiastka kwadratowego z tej liczby, jeśli jest to zwiększasz zmienną która przechowuje liczbę dzielników o 1, jeśli nie pozostawiasz bez zmian.
2.Stwórz sobie tablice dynamiczną,wczytaj ile będzie zmiennych. Zadeklaruj sobie zmienną, która przechowuje wartość największą i dla każdej liczby porównuj ją na bieżąco z największa liczbą, jeżeli bieżaca wartośc bedzie większa to zaktualizuj wartość maksymalną. Potem zliczasz liczbę wystąpień najwiekszej liczby w tablicy.
3. Tutaj troszkę nie zrozumiałem. Masz wyświetlić tylko liczbę ile ich jest, czy cały ciąg tych liczb?
agggnes
Użytkownik
Użytkownik
Posty: 87
Rejestracja: 21 gru 2011, o 21:27
Płeć: Kobieta
Podziękował: 18 razy

[Algorytmy][C++] Liczba dzielników, największa wartość

Post autor: agggnes »

cyberciq pisze:2.Stwórz sobie tablice dynamiczną,wczytaj ile będzie zmiennych.
nie mieliśmy jeszcze takich tablic:/ da się to jakoś ominąć?
cyberciq pisze:3. Tutaj troszkę nie zrozumiałem. Masz wyświetlić tylko liczbę ile ich jest, czy cały ciąg tych liczb?
też nie bardzo rozumiem, przepisałam te zadania z podręcznika.
Awatar użytkownika
cyberciq
Użytkownik
Użytkownik
Posty: 450
Rejestracja: 19 kwie 2010, o 15:03
Płeć: Mężczyzna
Podziękował: 5 razy
Pomógł: 43 razy

[Algorytmy][C++] Liczba dzielników, największa wartość

Post autor: cyberciq »

Da się bez tablicy tylko wtedy musisz mieć 2 zmienne. Jedną tak samo do przechowywania wartości max (nazwijmy ją x), a drugą do zliczania jej wystapień (np. y). Tylko potem tak: za pomocą instrukcji warunkowych sprawdzasz czy bieżąca wartość jest większa od x. Jeśli jest to przypisujemy y=1; jeśli nie to nic nie robimy, a jeśli jest równa x to y:=y+1.
agggnes
Użytkownik
Użytkownik
Posty: 87
Rejestracja: 21 gru 2011, o 21:27
Płeć: Kobieta
Podziękował: 18 razy

[Algorytmy][C++] Liczba dzielników, największa wartość

Post autor: agggnes »

Zaraz spróbuję rozpracować zad 2, a jesli chodzi o 3, to wydaje mi się, że jeśli podamy np ciąg:
4 5 6 0, to program wyświetli wartość 3 (ilość tych liczb).
Awatar użytkownika
cyberciq
Użytkownik
Użytkownik
Posty: 450
Rejestracja: 19 kwie 2010, o 15:03
Płeć: Mężczyzna
Podziękował: 5 razy
Pomógł: 43 razy

[Algorytmy][C++] Liczba dzielników, największa wartość

Post autor: cyberciq »

W 3 też wystarczą 2 zmienne-jedna do zapamiętania najdłuższego wystąpienia ciągu liczb dodatnich(np. x), druga do sprawdzenia aktualnej długości ciągu liczb(np. y).Sprawdzasz czy bieżąca liczba jest >0. Jeżeli jest to zmienną y zwiększasz o 1. Jeżeli nie, to jeśli y>x to x=y, y=0; No i na koniec x wyświetlasz.
agggnes
Użytkownik
Użytkownik
Posty: 87
Rejestracja: 21 gru 2011, o 21:27
Płeć: Kobieta
Podziękował: 18 razy

[Algorytmy][C++] Liczba dzielników, największa wartość

Post autor: agggnes »

Nie za bardzo rozumiem to 3, gdybyś mógł jeszcze raz..
Awatar użytkownika
cyberciq
Użytkownik
Użytkownik
Posty: 450
Rejestracja: 19 kwie 2010, o 15:03
Płeć: Mężczyzna
Podziękował: 5 razy
Pomógł: 43 razy

[Algorytmy][C++] Liczba dzielników, największa wartość

Post autor: cyberciq »

Przykładowa implementacja 3:

Kod: Zaznacz cały

#include<iostream>
using namespace std;
int main()
{double liczba;
int x=0,y=0;
do{
     cin>>liczba;
     if(liczba>0){y++;}
     else
     {
         if(y>x){x=y;}
     y=0;
     }
  }
while(liczba!=0);
cout<<x;
}
A w 1 to odnośnie tego co napisałem to jeszcze wynik pomnóż przez 2 i dodaj 2,
agggnes
Użytkownik
Użytkownik
Posty: 87
Rejestracja: 21 gru 2011, o 21:27
Płeć: Kobieta
Podziękował: 18 razy

[Algorytmy][C++] Liczba dzielników, największa wartość

Post autor: agggnes »

cyberciq, jesteś wielki
dzięki ogromne, uratowałeś mi skórę
Grzesio_
Użytkownik
Użytkownik
Posty: 44
Rejestracja: 23 gru 2011, o 22:59
Płeć: Mężczyzna
Lokalizacja: Polska
Pomógł: 3 razy

[Algorytmy][C++] Liczba dzielników, największa wartość

Post autor: Grzesio_ »

liczba dzielników właściwych

Kod: Zaznacz cały

int nod(unsigned int a) { // słabo gdy a == 4294967291 == [2^32-1] - 4
        unsigned int d, NOD=1;
        for( d=2; d*d<=a; d ++ ) {
                int w=1; 
                while( a%d == 0 ){
                        w++;
                        a /= d;}
                NOD *= w; }
        if( a>1 )
                NOD *= 2; 
        return NOD - 1;}
ODPOWIEDZ