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?
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 :)
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.
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.