👤

Greseala?Imi afiseaza 0.
Problema: Se dă un vector cu n numere naturale. Să se determine câte dintre perechile de elemente egal depărtate de capetele vectorului sunt prime între ele.
Intrare

6
50 18 15 28 35 40
Ieșire

2
#include


using namespace std;
int v[1001],i,n,r,nr=0,a,b;
int main()
{
cin>>n;
for(i=1; i<=n; i++)
{cin>>v[i];
a=v[1];
b=v[n];
for(i=2; i<=n-1; i++)

{


while(b!=0)
{
r=a%b;
a=b;
b=r;
}
}
if(a==1)
nr++;

}
cout << nr <<" "<< endl;
return 0;
}


Răspuns :

#include <iostream>
using namespace std;
int n, v[205], i, aux, nr;

int cmmdc(int d, int im)
{
    int r = d % im;
    while (r)
    {
        d = im;
        im = r;
        r = d % im;
    }
    return im;
}

int main()
{
    cin >> n;
    for(i = 1; i <= n; i++)
        cin >> v[i];
    for(i = 1; i <= n/2; i++)
        if(cmmdc(v[i],v[n-i+1])==1) nr++;
    cout << nr;
    return 0;
}