Rūdis rakstīja:klau vecie, vecās, jaunie, jaunās, gundrie un tie pārēji, kas tādi paši kā es
<< ieliekiet savus PROGRAMMĒŠANAS LAB uzdevumu noteikumus, tā teikt, lai citiem ja ir vēlēšanās bez sava uzd pakost arī citus, tāda dāvana tiktu dota<<



mans uzd.
noskaidrot vai ievadītais skaitlis n ir pirmskaitlis.
man ir identisks uzdevums.
man ir baigi neefektiivs kods, varbuut kaads vareetu paliidzeet uzlabot???
#include <iostream>
using namespace std;
int main ()
{
int n, t;
char c;
cout << "Si programma nosaka, vai lietotaja ievaditais skaitlis ir pirmskaitlis.\n";
cout << "Ta spej apstradat naturalos skaitlus, kas nav lielaki par 2147483647.\n";
do {
//sakas programmas galvenais cikls, kura izpilde iet tik ilgi, kamer lietotajs beigas ievada "n".
cout << "Ludzu ievadiet naturalu skaitli!\n";
// skaitla ievade
cin >> n;
t = n - 1;
if (cin.good()==false)
{
cout << "Tas nav naturals skaitlis, vai ari tas ir lielaks par 2147483647.\n";
system ("pause");
return 0;
// parbaude, vai skaitlis ir int tipa mainigais. Ja nav, programma darbu beidz.
}
else if (n<0)
{
cout << "Tas nav naturals skaitlis!\n";
goto start;
// ja skaitlis ir negativs, tas nav naturals skaitlis un programma pariet uz atsaksanas piedavajumu.
}
else if (n==0)
{
cout << "Skaitlis nav pirmskaitlis.\n";
goto start;
// ta ka 0 nevar dalit pasu ar sevi, 0 nav pirmskaitlis. programma pariet uz atsaksanas piedavajumu.
}
else if (n==1)
{
cout << "Skaitlis ir pirmskaitlis\n";
goto start;
}
else if (n==2)
{
cout << "Skaitlis ir pirmskaitlis.\n";
goto start;
// 1 un 2 dotaja cikla ir iznemuma gadijumi, tadel tie jaapskata atseviski.
// kad tiek ievadits kads no tiem, tiek pazinots, ka skaitlis ir pirmskaitlis un notiek pareja uz atsaksanas piedavajumu.
}
else
do {
if (n % t != 0) t = t - 1;
// kamer nav atrasts skaitlis, kas dalas ar doto bez atlikuma, programma to samazina par 1 un turpina dalisanu.
else
{
cout <<"Skaitlis nav pirmskaitlis.\n";
// ja ir atrasts skaitlis, kas dalas ar doto bez atlikuma, programma pazino, ka tas nav pirmskaitlis.
goto start;
}
}while (t != 1);
cout << "Skaitlis ir pirmskaitlis.\n";
// ja nav atrasts dalitajs, kas nav 1 vai pats skaitlis, programma pazino, ka ievaditais skaitlis ir pirmskaitlis.
goto start;
start:
cout << "Ja velaties iziet no programmas, ievadiet n, ja velaties turpinat, ievadiet jebkuru citu simbolu.\n";
cin >> c;
}while (c != 'n');
return 0;
}