fizmati.lv forums
netieku galaa... - Izdrukas versija

+- fizmati.lv forums (http://fizmati.lv/forums)
+-- Forums: Informācijas tehnoloģiju lietas (/forum-118.html)
+--- Forums: Programmēšana (/forum-125.html)
+--- Pavediens: netieku galaa... (/thread-1390.html)



netieku galaa... - lin - 01.12.2006 11:54

Variet paliidzeet?!?!

Doti naturāls skaitlis n un naturāli skaitļi a1, a2, ... an (n<100) .
Izdrukāt tos skaitļus, kuriem  blakus esošie skaitļi ir savstarpēji
pirmskaitļi.

Man doma ir, bet liidz gala rezultaatam netieku! Confused


RE: netieku galaa... - saldais - 01.12.2006 12:16

pilnā pārlase..

sāc no 1 līdz n un pārbaudi, ja katrs nākamais ir savstarpējs pirmskaitlis ar iepriekšējo tad print else skip..

Savstarpējs pirmskaitlis, ja tiem nav kopīgo dalitaju, kā vien 1.
Te būs vajadzīga funkcija, kas savastarpēji atkal uztaisa pilno pārlasi un pārbauda.. var jau kaut kā advancētāk noteikti, bet šis ir risinājums..


RE: netieku galaa... - zaza - 01.12.2006 12:53

Pamēģini šo kodu. manuprāt, strādā pareizi.


#include <cstdlib>
#include <iostream>

using namespace std;
int LKD(int x,int y)
{
int z;
while (y>0)
{
z=y;
y=x%y;
x=z;
}
return x;
}
int main(int argc, char *argv[])
{
const int max=1000;
int m[max];
int i,j,n;
cout << "Ievadiet n: "; cin >> n;
for (i=1;i<=n;i++)
{
cout << "Ievadiet " << i << " skaitli: ";
cin >> m[i];
}
cout << endl;
cout << "Atbilde: "; cout << endl;
n--; // peedeejo skaitli neparbaudam, jo tam ir tikai 1 blakus skaitlis
for (i=2;i<=n;i++)
if (LKD(m[i-1],m[i+1])==1) cout << m[i] << " ";
cout << endl;
system("PAUSE");
return EXIT_SUCCESS;
}