Ti-am obtinut
70 puncte (
http://infoarena.ro/job_detail/626887?action=view-source), pentru 100 trebuie exponentiere in timp logaritmic (cred, desi nu e necesar

), te mai uiti tu pe acolo, dar oricum ideea e urmatoarea : tu ai avut in procedura ssnd ceva gen long int n, care e gresit (dupa cum vezi, mai jos chiar tu l-ai pus long long, pentru ca el e maxim 10
12, ceea ce depaseste int <<sau long int, care dupa noile standarde e tot aia>>), deci trebuie pentru inceput in acea functie sa schimbi long long n. Bun, acum, tu ai ceva gen (in while) prim[ i ] * prim[ i ] <= n, ceea ce e prost, pentru ca prim[ i ] = int si n = long long, si cand se evalueaza prim
2[ i ], daca prim[ i ] e suficient de mare, o sa-ti dea un numar total aiurea, adica daca depaseste int-ul, o sa o ia din celalalt capat (adica de la minus 2
31). Asadar, daca vrei ca membrul stang sa fie tot long long, ai 2 variante : ori faci (long long) prim[ i ] * prim[ i ] <= n (care, dupa cum vezi, "converteste" acel produs la long long), sau, ceea ce si eu prefer, 1LL * prim[ i ] * prim[ i ] <= n (si ceea ce ai si in cod, pentru ca 1LL inseamna numarul unu
convertit la long long, si dupa cum ai un produs de long long si int, rezultatul e tot timpul luat de cel mai mare tip, adica long long). Am facut asa si cand ai calculat suma, pentru ca acel produs depaseste int, dar, din fericire, ai modulo, si cand aplici aceasta operatie, o sa ai un numar mai mic decat numarul la care faci modulo, cazul asta 9973, care intra si in short (dar, repet, trebuie sa faci asta pentru ca poti avea : 123456789123 % 9973, care da e un numar mic, dar din pacate acel numar pentru care este aplicat modulo e mai mare decat int, si trebuie sa fie convertit la long long). Cam asta e, incearca solutia pentru 100 puncte, explicata acolo, si sper ca ai inteles ce am vrut sa zic. Spor

.
[L.E.] Se pare ca ti-am scos
100 pct pana la urma (
http://infoarena.ro/job_detail/626906?action=view-source), am folosit dupa cum vezi urmatoarea chestie : in acel for, daca n
nu se imparte exact la prim[ i ] atunci nu il mai las sa continue degeaba, face multe operatii aiurea (o comparare din acel while, si o inmultire fara rost), si am mai pus i < k in acel for (adica sa nu depasesc limita vectorului prim[ i ], desi nu cred ca e o problema daca nu ai pune acea conditie).