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
Rezolvare:
#include
using namespace std;
int main()
{ unsigned long long N,S;
cin>>N;
S=(N*(N+1)*(2*N+1))/6;
cout<
return 0 ;
}
Problema este ca imi da doar 50 de puncte nu stiu de ce? Va rog ajutati-ma!
#include
#include
using namespace std;
int main()
{
int n, sum = 0;
cin >> n;
for (int i=1; i<=n; i++)
{
if (sum >= 10234573)
{
sum %= 10234573;
n -= i;
i = 1;
}
sum += i*i;
}
cout << sum;
return 0;
}
Răspunsuri la întrebare
#include<iostream>
using namespace std;
int main()
{
long long n,m,r,a,b,c,rez;
cin>>n;
m=10234573;
r=n%6;
switch(r)
{
case 0: a=(n/6)%m;
b=(n+1)%m;
c=(2*n+1)%m;
break;
case 1: a=n%m;
b=((n+1)/2)%m;
c=((2*n+1)/3)%m;
break;
case 2: a=(n/2)%m;
b=((n+1)/3)%m;
c=(2*n+1)%m;
break;
case 3: a=(n/3)%m;
b=((n+1)/2)%m;
c=(2*n+1)%m;
break;
case 4: a=(n/2)%m;
b=(n+1)%m;
c=((2*n+1)/3)%m;
break;
case 5: a=n%m;
b=((n+1)/6)%m;
c=(2*n+1)%m;
break;
}
rez=(a*b)%m;
rez=(rez*c)%m;
cout<<rez;
return 0;
}