3123 - summy: Difference between revisions
Pagină nouă: == Cerința == Se dau n şi k numere naturale. Calculați suma ∑ni=1ik. == Date de intrare == Se dau n şi k numere naturale. Calculați suma ∑ni=1ik. == Date de ieșire == Programul va afișa pe ecran valoarea sumei ∑ni=1ik, modulo 1.000.000.007. == Restricții și precizări == ~ 1 ≤ n ≤ 100.000 şi 1 ≤ k ≤ 1.000.000.000 pentru 70% din teste <br> ~ 1 ≤ n ≤ 1.000.000.000 şi 1 ≤ k ≤ 100.000 pentru 30% din teste == Exemplu 1 == ; Intrare : 5 3 ; Ieșire... |
No edit summary |
||
Line 6: | Line 6: | ||
Programul va afișa pe ecran valoarea sumei ∑ni=1ik, modulo 1.000.000.007. | Programul va afișa pe ecran valoarea sumei ∑ni=1ik, modulo 1.000.000.007. | ||
== Restricții și precizări == | == Restricții și precizări == | ||
*1 ≤ n ≤ 100.000 şi 1 ≤ k ≤ 1.000.000.000 pentru 70% din teste | |||
*1 ≤ n ≤ 1.000.000.000 şi 1 ≤ k ≤ 100.000 pentru 30% din teste | |||
== Exemplul 1 == | |||
== | |||
; Intrare | ; Intrare | ||
: 5 3 | : 5 3 | ||
Line 15: | Line 14: | ||
: 225 | : 225 | ||
<br> | <br> | ||
== | == Exemplul 2 == | ||
; Intrare | ; Intrare | ||
: 6 10 | : 6 10 | ||
Line 24: | Line 23: | ||
<syntaxhighlight lang="python" line> | <syntaxhighlight lang="python" line> | ||
#3123 - summy | #3123 - summy | ||
n, k = | def calculate_sum(n, k): | ||
result = (n * (n + 1) * k // 2) % 1000000007 | |||
return result | |||
if __name__ == "__main__": | |||
n, k = map(int, input("Introduceți n și k, separate prin spațiu: ").split()) | |||
if (1 <= n <= 100000 and 1 <= k <= 1000000000) or (1 <= n <= 1000000000 and 1 <= k <= 100000): | |||
result = calculate_sum(n, k) | |||
print(f"Suma este: {result}") | |||
else: | |||
print("false") | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Explicatie == | |||
∑5i=1i*3=1**3+2**3+3**3+4**3+5**3=225 |
Revision as of 18:07, 8 January 2024
Cerința
Se dau n şi k numere naturale. Calculați suma ∑ni=1ik.
Date de intrare
Se dau n şi k numere naturale. Calculați suma ∑ni=1ik.
Date de ieșire
Programul va afișa pe ecran valoarea sumei ∑ni=1ik, modulo 1.000.000.007.
Restricții și precizări
- 1 ≤ n ≤ 100.000 şi 1 ≤ k ≤ 1.000.000.000 pentru 70% din teste
- 1 ≤ n ≤ 1.000.000.000 şi 1 ≤ k ≤ 100.000 pentru 30% din teste
Exemplul 1
- Intrare
- 5 3
- Ieșire
- 225
Exemplul 2
- Intrare
- 6 10
- Ieșire
- 210
Rezolvare
<syntaxhighlight lang="python" line>
- 3123 - summy
def calculate_sum(n, k):
result = (n * (n + 1) * k // 2) % 1000000007 return result
if __name__ == "__main__":
n, k = map(int, input("Introduceți n și k, separate prin spațiu: ").split())
if (1 <= n <= 100000 and 1 <= k <= 1000000000) or (1 <= n <= 1000000000 and 1 <= k <= 100000): result = calculate_sum(n, k) print(f"Suma este: {result}") else: print("false")
</syntaxhighlight>
Explicatie
∑5i=1i*3=1**3+2**3+3**3+4**3+5**3=225