3123 - summy: Difference between revisions

From Bitnami MediaWiki
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 ≤ 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
~ 1 ≤ n ≤ 1.000.000.000 şi 1 ≤ k ≤ 100.000 pentru 30% din teste
== Exemplul 1 ==
== Exemplu 1 ==
; Intrare
; Intrare
: 5 3
: 5 3
Line 15: Line 14:
: 225
: 225
<br>
<br>
== Exemplu 2 ==
== 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 = map(int, input("Introduceți două numere naturale separate prin spațiu (n k): ").split())
def calculate_sum(n, k):
    result = (n * (n + 1) * k // 2) % 1000000007
    return result


rezultat = (n * (n + 1) // 2) * k % 1_000_000_007
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")


print(f"Suma ∑ni=1ik, modulo 1.000.000.007 este: {rezultat}")
</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>

  1. 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