#include <iostream>
using namespace std;
int v;
int cautare_interval(int pas, int st, int dr, int num)
{
for(int i=0 ; st+pas*(i+1) <= dr ; i++)
if(v[st+pas*i] == num)
cout << “elementul se afla pe pozitia “ << st + pas*i << ‘ ‘;
else if(v[st+pas*i]<num && v[st+pas*(i+1)]>num)
return pas*i;
return 0;
}
int cautare_binara(int st, int dr, int x)
{
while(st <= dr)
{
int mij = (st + dr)/2;
if(x == v[mij])
return mij;
else if(x > v[mij])
st = mij + 1;
else
dr = mij – 1;
}
return -1;
}
int main()
{
int n, num;
cin >> n;
int st = 1, dr = n;
for(int i=1 ; i<=n ; ++i)
cin >> v[i];
cin >> num;
for(int i=2 ; i<=n ; ++i)
{
if(n % i 0)
{
while(n % i 0)
n /= i;
if(n != 1)
{
st += cautare_interval(n, st, dr, num);
dr = st + n;
}
}
}
return 0;
}
Obs: cand se ajunge la n==1 se cauta binar