Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
H - Subprime Fibonacci Sequence
#include <bits/stdc++.h> #define MAXTAM 5000 using namespace std; vector<int> criba(MAXTAM,0); int main() { int P, n, a0, a1, dato, contador, siguiente, primero, tamano, K, ultimo; vector <int> listado; map <int, int> indice; criba[0] = 0; criba[1] = 1; for(int i = 2; i < MAXTAM; i++) { if(criba[i]==0) { criba[i] = i; for(int j = i; j < MAXTAM/i; j++) if(criba[i*j] == 0) criba[i*j] = i*j/i; } } /*for(int i = 0; i < MAXTAM; i++) { cout << i <<":" << criba[i]<< "\n"; }*/ cin >> P; while(P--) { ultimo = -1; primero = -1; listado.clear(); indice.clear(); cin >> K; cin >> n; cin >> a0; cin >> a1; listado.push_back(a0); listado.push_back(a1); indice[a0] = 0; indice[a1] = 1; contador = 0 ; for(int i = 2; i < n; i++) { //cout << "i-1: " <<listado[i-1] + listado[i-2] << "\n"; dato = criba[listado[i-1]+listado[i-2]]; //cout << " " <<i << ":"<< dato << " "; if(indice.find(dato) == indice.end()) { listado.push_back(dato); indice[dato] = i; contador = 0; }else { siguiente = criba[dato+listado[i-1]]; //cout << "\ndato:" << dato << " siguiente " <<siguiente << " list " << listado[indice[dato]+1]<< "\n"; if(siguiente == listado[indice[dato]+1]) { // cout << "repetido " << dato <<"\n"; tamano = i - indice [dato]; ultimo = i; primero = dato; //cout << "\nprimero: " <<primero <<"\n"; break; } else { listado.push_back(dato); } } } if(ultimo == -1 and primero == -1){ cout << K << " " << n << " 0\n"; cout << criba[listado[n-1] + listado[n-2]] <<"\n" ;} else { cout << K << " " << ultimo+1 << " " <<tamano <<"\n"; for(int i= 0; i < tamano; i++) { cout << listado[i+indice[primero]] << " "; } cout << listado[indice[primero]] << " " << listado[indice[primero]+1] << "\n"; } } }
run
|
edit
|
history
|
help
0
Speed
Triangle
cppPySuper
Decimal to Binary
threadpool01
perfect square
nearest
Szukanie elementu w niemalejąco posortowanej tablicy używając wyszukiwania binarnego
rotation
Web Browser History - DLL