Matematické Fórum

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
! 04. 11. 2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
17. 01. 2016 (Jel.) Rok 2016 s novými a novějšími krystaly od kolegy Pavla!
17. 01. 2016 (Jel.) Nabídka knih z oborů matematiky, fyziky, chemie
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

#1 05. 11. 2017 15:09

rumluke
Příspěvky: 90
Reputace:   
 

Pro prirozene cislo N (objem) najit vsechny ruzne kvadry.

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

 

#2 05. 11. 2017 16:54

Xellos
Příspěvky: 519
Škola: MFF CUNI, Bc. (13-16)
Reputace:   34 
 

Re: Pro prirozene cislo N (objem) najit vsechny ruzne kvadry.

Cez rozklad na prvocisla to prave ze ide. Musis si dat pozor na to, ktore kvadre zapocitavas kolko krat, ale ide to.

Offline

 

#3 07. 11. 2017 15:36

check_drummer
Příspěvky: 2401
Reputace:   65 
 

Re: Pro prirozene cislo N (objem) najit vsechny ruzne kvadry.

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


Achilleovo tvrzení: Ocitl jsem se v patové situaci.

Offline

 

#4 13. 11. 2017 09:05 — Editoval Honzc (15. 11. 2017 12:55)

Honzc
Příspěvky: 3695
Reputace:   208 
 

Re: Pro prirozene cislo N (objem) najit vsechny ruzne kvadry.

↑ 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

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson