Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: C++ - pomoc w programie

06.11.2011 16:04
1
PkSrlz
71
Konsul

C++ - pomoc w programie

do tej pory udało mi się napisać program, który wyświetli dzielniki liczby (dzielniki tylko te, które są liczbami naturalnymi) lecz kolejnym zadaniem jest zmodyfikowanie programu tak by wyświetlał wszystkie dzielniki liczby, które są LICZBAMI PIERWSZYMI.

#include <iostream>
#include <conio.h>

int a, b=0;

int main()

using namespace std;
cout << "Podaj liczbe \n";
cin >> a;
cout << "\nOto wszystkie naturalne dzielniki tej liczby: \n";
while((b++)<=(a>>1))
if (!(a%b))
cout << b << " ";
cout << a << endl;
getch();
return 0;

niestety próbowałem lecz nic mi nie wychodziło. może mi ktoś pomoc by wyświetlał tylko te dzielniki, które są liczbami pierwszymi?

06.11.2011 16:11
2
odpowiedz
zanonimizowany218651
61
Generał

Poszukaj w internecie, na pewno są jakieś "matematyczne" sposoby.

A najprostszy to: stwórz następną pętlę w pętli którą masz która będzie sprawdzała każdy
każdy dzielnik w taki sam sposób jak pętla poprzednia. Jeżeli będze mieć tylko dwa dzielniki to
ją wyświetlasz, jeżeli nie to liczysz dalej :)

06.11.2011 16:13
Katane
3
odpowiedz
Katane
170
Useful_Idiot_

Zrob sobie funkcje zapisujaca dzielniki podanej liczby w tablicy. Wywolujesz ja dla liczby podanej przez uzytkownika, dostajesz tablice dzielnikow, nastepnie wywolujesz ta sama funkcje dla kazdego elementu w tablicy, sprawdzasz, czy zwrocona tablica jest dwuelementowa i jesli jest, wyswietlasz te liczbe.

06.11.2011 16:19
graf_0
4
odpowiedz
graf_0
117
Nożownik

Kurcze, mam problem z zobrazowaniem struktury twojej pętli...

W każdym razie, po

if (!(a%b))

Powinna być podpętla która sprawdza czy istnieje reszta z dzielenia b przez liczbę c zwiększającą sie od 1 do sqrt(b). Jeśli reszta nie istnieje - jest to liczba pierwsza.

Forum: C++ - pomoc w programie