• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Alog. maturalne ( badanie , rozkłady sorotwanie itd. )

Object Storage Arubacloud
0 głosów
152 wizyt
pytanie zadane 12 kwietnia 2016 w Rozwój zawodowy, nauka, praca przez piotr432 Użytkownik (620 p.)

alogrymt

 

#include <iostream>

using namespace std;
int main ()
{
	int i = 2, n;
	cout << "Podaj liczbe: ";
	cin >> n;
	
	while (n > 1)
	{
		while (n % i == 0)
		{
			cout << n << "\t" << i << endl;
			n = n / i;
		}	
		i++;
	}
return 0;
}

 rozkład na czynniki pierwsze

Zgadza się ten schemat z tym kodem ?

1 odpowiedź

0 głosów
odpowiedź 12 kwietnia 2016 przez Porcupine Nałogowiec (31,560 p.)
Nie... weź na przykład n = 3 idąc Twoim schematem blokowym:
1) n > 1, bo 3 > 1
2) i = 2
3) n % i != 0 (więc przyjmując, że świadomie robisz niejawne rzutowanie typów warunek jest spełniony - TAK)
4) n = n / i czyli z n = 3/2 = 1
5) Wypisze: 1    1

Co zupełnie nie ma nic wspólnego z rozkładem na czynniki pierwsze...
komentarz 12 kwietnia 2016 przez piotr432 Użytkownik (620 p.)
n % i == 0 tak powinno być
komentarz 12 kwietnia 2016 przez piotr432 Użytkownik (620 p.)
nie wypisz bo tam gdzie n % i zapomniałem , że to ma być tak "n % i == 0  "
komentarz 12 kwietnia 2016 przez Porcupine Nałogowiec (31,560 p.)
Nadal nie działa, chociażby dlatego, że wtedy wchodzisz w pętle nieskończoną

i = 2 ----> n % i == 0 (zwraca NIE) ----> i = 2 + 1 = 3 ----> ponownie przypisujesz: i = 2....
komentarz 12 kwietnia 2016 przez piotr432 Użytkownik (620 p.)
włączyłeś program z kodu ?
komentarz 12 kwietnia 2016 przez piotr432 Użytkownik (620 p.)
n = 3

3>1 ( n>1) tak

i = 2

3 % 2 == 0 nie

i++ -> i=3

znowu wchodzi w pętle

3 / 3 = 1  nowa wartość n=1

wraca do pierwszego warunku

1>1 nie

 

koniec
komentarz 12 kwietnia 2016 przez Porcupine Nałogowiec (31,560 p.)
Nie, ale widzę co robi... problem w tym, a przynajmniej jeden z problemów to to, że ta strzałka, która wskazuje od: i = i + 1, wskazuje przed i = 2 zamiast po. Przez to za każdym razem po zwiększeniu i o jeden i tak przypiszesz do niego i = 2. Dlatego dla n - nieparzystych wartość Twojej zmiennej i będzie skakać: 2, 3, 2, 3, 2, 3, 2, 3, 2, ... i tak w nieskończoność....
komentarz 12 kwietnia 2016 przez piotr432 Użytkownik (620 p.)
W sumie to racja ;/ jakbym to poprawił było by dobrze ?
komentarz 12 kwietnia 2016 przez Porcupine Nałogowiec (31,560 p.)
Chyba tak :) Po za tym wydaje się być całkiem ok
komentarz 12 kwietnia 2016 przez piotr432 Użytkownik (620 p.)
Ok. jeszcze będę pisał zapewne w sprawie innych algo. :D Tymczasem dziękuje :)

Podobne pytania

0 głosów
0 odpowiedzi 343 wizyt
pytanie zadane 10 marca 2021 w Rozwój zawodowy, nauka, praca przez hacerberry Użytkownik (670 p.)
0 głosów
1 odpowiedź 1,258 wizyt
pytanie zadane 19 września 2022 w Sprzęt komputerowy przez Jerzy Użytkownik (930 p.)
+2 głosów
2 odpowiedzi 422 wizyt
pytanie zadane 16 października 2021 w Algorytmy przez mn130496 Gaduła (3,530 p.)

92,539 zapytań

141,382 odpowiedzi

319,480 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...