Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Zadani je, na vstupu je nejake prirozene cislo... N a najit k nemu POCET vsech ruznych kvadru, ktere maji tento objem (delky stran jsou prirozena cisla).
N=6
6*1*1 a 1*6*1 a 1*1*6 nejsou ruzne, jsou jen otocene
Pro vstup N=6 by vystup byl cislo 2, protoze existuji:
6=6*1*1
6=3*2*1
Pro N=8 by vystup byl cislo 3, protoze muzu najit tyto kvadry:
8=8*1*1
8=4*2*1
8=2*2*2
Nejakej hint, nebo pomoc? Zkousel jsem to nejak pres rozklad na prvocisla, ale to se ukazalo, ze asi nikam nevede (u vetsich cisel se mi kazdy takovy algoritmus rozpadnul). Urcite se nesmi testovat vsechny moznosti a ma to byt byt bez pouziti pole. Jenom pres cykly s vhodnymi mezemi by to melo jit.
Offline
↑ rumluke:
Ahoj, nedávno tu někdo řešil počet rozkladů čísla na součin dvou čísel, tak toto je podobná úloha - na součin tří čísel.
Offline
↑ rumluke:
Jde to programově (pseudoprogram)
Trunc značí celočíselnou část čísla
div značí celočíselné dělení
mod značí zbytek po dělení
sqrt značí druhou odmocninu
deklaruj: i,j,a,a1,p jako celá čísla
a=zadané číslo N
p=0
pro i=1 do Ttrunc(sqrt(a)) počítej
pro j=i do Ttrunc(sqrt(a div i)) počítej
když a mod (i *j) = 0 pak
(a1=a div (i*j)
zapiš (i,j,a1)
p=p+1)
zapiš(p)
Ovšem určit počet kvádrů početně není vůbec lehké
Offline
Stránky: 1