127 afișări Vascuta Darius (VascutaDarius) 04 feb www.pbinfo.ro
Etichete: nicio etichetă

#include <iostream>
using namespace std; int v101;
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


127 afișări Vascuta Darius (VascutaDarius) 04 feb www.pbinfo.ro