Witam,
Tworząc program na zajęcia szkolne natknąłem się na pewien problem z działaniem kodu. Po kompilacji, gdy program "sprawdza" czy liczby są pierwsze, jeśli odkryje, że podana l.naturalna nie jest pierwsza - kończy działanie i nie "sprawdza" drugiej liczby. Zauważyłem, w którym miejscu trzeba byłoby to poprawić, jednakże po wielu próbach i tak mi się nie udało. Potrzebuje zapewne prostego oświecenia, pozdrawiam serdecznie :)
(Nie jestem w stanie załączyć pliku z niewiadomych przyczyn, wklejam kod poniżej)
/*
Napisać program, który:
1. Losuje liczbę z zakresu <1,100> lub <a,b>
2. Pobiera od użytkownika dowolną liczbę naturalną
3. Sprawdza, czy obie liczby są względnie pierwsze, czyli ich jednynym wspólnym dzielnikiem jest 1
*/
#include <iostream>
#include <conio.h>
#include <math.h>
#include <ctime>
#include <cstdlib>
using namespace std;
int main()
{
long long int liczba, liczba2;
long long int a,b;
int decyzja;
setlocale (LC_ALL, "");
cout << " ***Tytuł programu*** " << endl;
cout << "\nCzy chcesz podać własny zakres <a,b>? 0->nie 1->tak. Wybierz opcję i kliknij ENTER\n";
cin >> decyzja;
if (decyzja == 1)
{
cout << "\nPodaj wartość a: ";
cin >> a;
cout << "\nPodaj wartość b: ";
cin >> b;
srand(time(NULL));
liczba = a + rand()%(b-a+1);
cout << "\nLiczba w zakresie <a,b> to: " << liczba << endl;
}
else
{
srand(time(NULL));
liczba = 1 + rand()%(100);
cout << "\nLiczba w zakresie <1,100> to: " << liczba << endl;
}
cout << "\nPodaj dowolną liczbę naturalną: ";
cin >> liczba2;
for(int p=2; p<liczba2; p++)
if(liczba2 % p == 0)
{
cout << "\nPodana l.naturalna nie jest liczbą pierwszą!" << endl;
return 0;
}
cout << "\nPodana l.naturalna jest liczbą pierwszą!" << endl;
return 0;
for(int q=2; q<liczba; q++)
if(liczba % q == 0)
{
cout << "\nWylosowana liczba to nie liczba pierwsza!" << endl;
return 0;
}
cout << "\nWylosowana liczba to liczba pierwsza!" << endl;
return 0;
return 0;
}