Cerința
Fiind dat N, un număr natural nenul, calculați suma S=12+22+32+⋯+N2, modulo 10.234.573.
Date de intrare
Programul citește de la tastatură numărul N.
Date de ieșire
Programul va afișa pe ecran numărul S, modulo 10.234.573.
Restricții și precizări
1 ≤ N ≤ 2.000.000.000
Exemplu
Intrare
4
Ieșire
30
Explicație
S=12+22+32+42=30
Poblema mea este cu timpul de executie. Multumesc anticipat
AntiEaglesDavids:
Asta e si ideea. Nu ai folosit modulo cum trebuie.
{
long long n,i,p=0;
cin>>n;
for(i=1;i<=n;i++)
p=p+((i*i)%10234573);
cout<<p;
return 0; -------------------- pe aceasta iau 30 de punte....
Răspunsuri la întrebare
Răspuns de
4
Metoda ineficienta (nu respecta limitele) dar care da raspuns corect. Sa te vad cum faci fara o structura repetitiva.
#include <iostream>
using namespace std;
const int MOD = 10234573;
int main()
{
int n;
long long p = 0;
cin >> n;
for(int i=1; i<=n; i++) {
p = ( ( p % MOD ) + ( (long long)( i % MOD ) * ( i % MOD ) % MOD ) ) % MOD;
}
cout << p << '\n';
}
#include <iostream>
using namespace std;
const int MOD = 10234573;
int main()
{
int n;
long long p = 0;
cin >> n;
for(int i=1; i<=n; i++) {
p = ( ( p % MOD ) + ( (long long)( i % MOD ) * ( i % MOD ) % MOD ) ) % MOD;
}
cout << p << '\n';
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Chimie,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă