Răspuns :
Nu inteleg de ce nu citesti descrierea solutiei. De obicei se cer rezolvari (surse) tu ne oferi o sursa si vrei explicatii. Cele mai bune explicatii le ai citind ceea ce a vrut in rezolvare de fapt autorul problemei. Adica citind "descrierea solutiei"...pentru ca este normal ca la o problema ceruta sa dau si sursa...iti trimit sursa mea la aceasta problema insotita de descrierea solutiei. Te sfatuiesc ca alta data sa ceri doar rezolvari (surse).Succes!
Formula de bază utilizată pentru rezolvarea problemei devine în final n * (n + 1)2 * (n + 2) / 12 după generalizarea formulei anterioare. Însă, pentru a putea efectua operaţia modulo corespunzător (împărţirile nu se pot face în modulo) decât dacă ne folosim de inversul modular, dar aici nu este nevoie. Luăm un vector t[4] = {n, n + 1, n + 2, n + 1} şi apoi împărţim individual numerele cu divizorii primi ai lui 12.
Ştim datorită principiului cutiei că unul dintre primele 3 numere este divizibil cu 3. Îl împărţim pe acesta cu 3 şi apoi ne rămâne să împărţim cu 4 altceva. Acel altceva va fi cele doua numere pare. Dacă n este par, îl împărţim pe t[0] şi pe t[2] la 2, în caz contrar pe t[1] şi t[3]. Rezultatul va fi dat în final de produsul celor 4 numere în modul.
#include <iostream>
#define mod 666013
using namespace std;
long long n, i, rez, x1;
int main()
{
cin >> n;
n ++;
n = n % mod;
for(i = 2; i <= n; i ++)
{
x1 = ((n - i + 1) * (n - i + 1)) % mod;
x1 = (x1 * (i - 1)) % mod;
rez = rez + x1;
rez = rez % mod;
}
cout << rez;
return 0;
}
Vă mulțumim pentru vizita pe site-ul nostru dedicat Informatică. Sperăm că informațiile disponibile v-au fost utile și inspiraționale. Dacă aveți întrebări sau aveți nevoie de suport suplimentar, suntem aici pentru a vă ajuta. Ne face plăcere să vă revedem și vă invităm să adăugați site-ul nostru la favorite pentru acces rapid!