Se dau numerele naturale nenule a
, b
, c
, n
, urmate de o secvența de n
numere naturale distincte ordonate crescător, notată cu s
.
Cerința
Scrieți în limbajul C++ definiția completă a subprogramului diofantic
care are 5
parametri, după cum urmează:
Exemplu
Fie secvența:
5
0 3 4 5 18
Pentru a=1
, b=1
, c=25
funcția va returna valoarea 4
.
Cele 4
perechi sunt: (3,4)
, (4,3)
, (0,5)
, (5,0)
.
Important
Soluția propusă va conține doar definiția subprogramului cerut. Prezența în soluție a altor instrucțiuni poate duce erori de compilare sau de execuție care vor avea ca efect depunctarea soluției.
int diofantic(int n, int s[], int a,long long b,int c) { int k=0;int i=1; int j=n; while(i<=n && j>0) { if(a*s[i]*s[i]+b*s[j]*s[j]==c ) { k++; i++; } if(a*s[i]*s[i]+b*s[j]*s[j]<c) i++; if(a*s[i]*s[i]+b*s[j]*s[j]>c) j--; } return k; }