Autor |
Mesaj |
|
Numarul
,
are
divizori
.
Cat este
?
--- Doamne ajuta...
Petre
|
|
[Citat] Numarul
,
are
divizori
.
Cat este
?
|
--- C.Telteu
|
|
Problemele de programare au un trend bogat pe pagina asta...
Presupunand ca numerele a,b,c ordonate ca in enuntz sunt (naturale si) >0, atunci numarul dat este determinat de conditia ca numarul lui de divizori
(a+1)(b+1)(c+1) este 41.7.7
si de faptul ca factorii de mai sus vin gata ordonati in ordinea scrisa.
Ne ramane un simplu exercitiu de programare, rezolvat desigur intr-o linie (sagemath):
sage: ( 2^40 * 3^6 * 5^6 ).divisors() [ 1996-1 ].factor()
2^38 * 3^6 * 5^5
(Acel minus unu vine de la faptul ca python -si sage bazat pe el- incepe numaratoarea de la 0...)
In limbaj uman: Ia numarul 2^40 * 3^6 * 5^6 . Acesta este un obiect al unei clase ce are grija de numere intregi. Aceasta clasa are metoda divisors, ce nu are nevoie de argumente, de aceea folosind aplicarea ei (aplicarea este acel "dot") pe numarul 2^40 * 3^6 * 5^6 obtinem lista divizorilor lui. Ca un serviciu pentru populatie, lista vine gata sortata, de aceea pentru a-i lua al 1996-lea element (in indexare umana), luam elementul de ordin pythonic 1996-1. Deoarece nu vrem sa tiparim ca raspuns o salata de cifre (adica 626206231756800000), aplicam pe numarul obtinut o alta metoda standard a clasei ce are grija de intregi in python, anume factor.
Cod mai pe-ndelete, care poate ne ajuta sa intelegem (ca nu mai e nimic de intzeles) din punct de vedere matematic:
sage: divizori = ( 2^40 * 3^6 * 5^6 ).divisors()
sage: print "Lista divizori are %d elemente." % len(divizori)
Lista divizori are 2009 elemente.
sage: nrcifre = len( str( 2^40 * 3^6 * 5^6 ) ); nrcifre
20
sage: for n in range( 1990, 2009 ):
....: print "d[%d] = %s = %*s" % \
....: ( n+1, divizori[n].factor(), int(nrcifre), divizori[n] )
....:
d[1991] = 2^35 * 3^6 * 5^6 = 391378894848000000
d[1992] = 2^39 * 3^5 * 5^5 = 417470821171200000
d[1993] = 2^40 * 3^3 * 5^6 = 463856467968000000
d[1994] = 2^40 * 3^6 * 5^4 = 500964985405440000
d[1995] = 2^37 * 3^5 * 5^6 = 521838526464000000
d[1996] = 2^38 * 3^6 * 5^5 = 626206231756800000
d[1997] = 2^39 * 3^4 * 5^6 = 695784701952000000
d[1998] = 2^36 * 3^6 * 5^6 = 782757789696000000
d[1999] = 2^40 * 3^5 * 5^5 = 834941642342400000
d[2000] = 2^38 * 3^5 * 5^6 = 1043677052928000000
d[2001] = 2^39 * 3^6 * 5^5 = 1252412463513600000
d[2002] = 2^40 * 3^4 * 5^6 = 1391569403904000000
d[2003] = 2^37 * 3^6 * 5^6 = 1565515579392000000
d[2004] = 2^39 * 3^5 * 5^6 = 2087354105856000000
d[2005] = 2^40 * 3^6 * 5^5 = 2504824927027200000
d[2006] = 2^38 * 3^6 * 5^6 = 3131031158784000000
d[2007] = 2^40 * 3^5 * 5^6 = 4174708211712000000
d[2008] = 2^39 * 3^6 * 5^6 = 6262062317568000000
d[2009] = 2^40 * 3^6 * 5^6 = 12524124635136000000
(Nu se observa nici un fel de regula "simpla" care sa ma duca direct la d[1996] pe considerente de indaratnicie a ingeniozitatii... Ce placere are un elev ce incearca sa rezolve aceasta problema si cum ar putea sa o redacteze aici sau undeva altundeva?)
P.S. O problema la fel de structurala:
(1) Cati divizori ai numarului 2^40 * 3^6 * 5^6 au toate cifrele diferite, daca sunt scrisi in baza zece.
(2) Cati dintre acesti divizori au cifrele diferite daca sunt scrisi intr-una (si in fiecare) dintre bazele 2, 8, 10, 16 ?
P.S.2. Cred ca trebuie sa ma apuc si eu sa propun probleme pe aceasta rubrica, poate ma intzelege lumea cu directia in care se duce matematica in zilele noaste. Numai putin, ca ma organizez repede. Pana nu propun ceva n-am voie sa ma plang de lipsa de structura, stiu...
--- df (gauss)
|
|
Nu am folosit programare, in primul rand pentru ca nu ma pricep deloc.
Am zis asa:
Folosind formula pentru numarul de divizori ai lui
, am gasit
.
Apoi am observat ca
Am scris apoi primii 14 divizori in ordine crescatoare(ceea ce nu a fost greu avand in vedere scrierea lui
) si am calculat apoi pe
.
(
)
--- C.Telteu
|
|
[Citat] Nu am folosit programare, in primul rand pentru ca nu ma pricep deloc.
Am zis asa:
Folosind formula pentru numarul de divizori ai lui
, am gasit
.
Apoi am observat ca
Am scris apoi primii 14 divizori in ordine crescatoare(ceea ce nu a fost greu avand in vedere scrierea lui
) si am calculat apoi pe
.
(
) |
Primii 14 divizori ai numarului sunt
Deci al 14-lea divizor este
. Al 1996-lea este
.
Domnule
...tot respectul...!
--- Doamne ajuta...
Petre
|
|
[Citat]
[Citat] Nu am folosit programare, in primul rand pentru ca nu ma pricep deloc.
Am zis asa:
Folosind formula pentru numarul de divizori ai lui
, am gasit
.
Apoi am observat ca
Am scris apoi primii 14 divizori in ordine crescatoare(ceea ce nu a fost greu avand in vedere scrierea lui
) si am calculat apoi pe
.
(
) |
Primii 14 divizori ai numarului sunt
Deci al 14-lea divizor este
. Al 1996-lea este
.
Domnule
...tot respectul...! |
Eu am inceput cu 2...
--- C.Telteu
|