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

#1 14. 02. 2011 23:40

VojtechSejkora
Příspěvky: 176
Reputace:   
 

Dělitelnost čísel od 1 do 1000

potřeboval bych poradit jak zjistit jestli číslo délky až 20 je dělitelné 1 až 1000 (tuto část výpočtu potřbuji do KSP... bez toho se bohužel asi nehnu:( jelikož neznám v céčku žádný tip, který by mohl mít maximální velikost 9*10^19 + 9*10^18...+9)

hledal jsem na wikipedii tam jsem našel pro čísla 1-18 pak 20, 30, 40, 50, 100 a 1000

dokone tam i píší nějaké obecné kriterium, ale tomu jsem vážně neporozumněl.... díky moc za rady

Offline

  • (téma jako nevyřešené označil(a) VojtechSejkora)

#2 15. 02. 2011 01:14

Tlacenka
Místo: Brno
Příspěvky: 52
Reputace:   
 

Re: Dělitelnost čísel od 1 do 1000

↑ VojtechSejkora: No v tom cecku by to urcite slo udelat a vyzkousel bych to prubnout asi prez string kde neni problem nadefinovat si pole o velikost [20+1] k tomu bych udelal nejakej cyklus treba FOR no do toho dat nejakou podminku kdyz je delitelny tak neco udelej kdyz ne tak testuj dal nez dojdu k treba te 1000.

Mohl bych to tu rozepsat vic nebo ten program i udelat ale nejsem si uplne jist jestli sem pochopil uplne presne zadani. Jde o to ze uzivatel zada az 20 mistne cislo a ten program by mel vypsat jestli je delitelny 1,2,3...1000 ?? a pro kazde toto cislo vypise: Jsem delitelny jednickou, Nejsem delitelny dvojkou atd. ? Omluvte kdyztak moji nechapavost ale sem utahanej jak pes :),. Kdyztak to tu rozvedte jestli muzete nebo sem hodte i ten vas kod v C pokud teda chcete to totim smerem resit :).


Nejsem dokonalý a i já dělám chyby z kterých se holt učim.

Offline

 

#3 15. 02. 2011 13:03

VojtechSejkora
Příspěvky: 176
Reputace:   
 

Re: Dělitelnost čísel od 1 do 1000

↑ Tlacenka:
tak to bych asi taky zvládl... mě šlo spíše o to že jsem chtěl (jelikož mám jednotlivé cifry toho čísla) zjistit jestli je daným číslem dělitelný nebo ne (a na vstupu dostanu počet míst a jakým číslem to má být dělitelné a mám vypsat čísla, která při zadané délce jsou dělitelné tím zadaným číslem)

a žádnej program nepiš... to by moc nemělo pak smysl:)


spíše by mě zajímalo jestli někdo pochopil z wiki toto:

Obecné kritérium dělitelnosti

Libovolné kritérium dělitelnosti lze zapsat jako ciferný součet s vahami — číslo x je dělitelné prvočíslem n právě když Σk αkak je dělitelné n, kde x   =   a0 + 10a1 + 100a2 + 1000a3 + …+10nan, neboli je zapsáno v poziční soustavě se základem 10.

Jednotlivé váhy v ciferném součtu jsou řešení jednoduchých kongruencí $\alpha_k \equiv 10^k\,(mod\ n)$. Řešení jsou tedy zbytky po dělení $10^k/n$.

Například číslo x je dělitelné 17 právě když a0 − 7a1 − 2a2 − 3a3 + 4a4 + 6a5 − 8a6 + 5a7 − a8 + 7a9 + 2a10 + 3a11 − 4a12 − 6a13 + 8a14 − 5a15 + a16 … je dělitelné 17.

a jestli je správné.... a kdyby mi to někdo mohl vysvětlit jak to tam myslí

Offline

 

#4 15. 02. 2011 13:07

FailED
Příspěvky: 1255
Reputace:   42 
 

Re: Dělitelnost čísel od 1 do 1000

Offline

 

#5 15. 02. 2011 15:29

vojta01
Příspěvky: 63
Reputace:   
 

Re: Dělitelnost čísel od 1 do 1000

Ahoj, také řeším KSP a problémy spojené s touto úlohou :(
Zadané číslo může být maximálně 19-ti místné, nikoliv 20 místné!
Zkus požít typ unsigned long long int, což je beznaménkové číslo v rozsahu 0 až 2^64-1, což ti pokryje 18 řádů a s devatenáctým řádem si již určitě nějak poradíš, popř. nezískáš plný počet bodů.

Offline

 

#6 15. 02. 2011 19:26

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Dělitelnost čísel od 1 do 1000

↑ VojtechSejkora:
K tomu obecnemu na wiki - napriklad pro tech 17 pri desitkovem zakladu:
a0, a1, a2 ... jsou ty cifry

1 deleno 17 da zbytek 1, takze proto 1*a0
10 deleno 17 da zbytek 10, takze dalsi clen muze byt treba 10*a1, ale vzhledem k delitenosti je to stejne jako -7*a1 (rozdil tech koeficientu je 17, mohlo by tam byt treba i -24*a1 nebo 27*a1 atd. Tipuju, ze protoze -7 je blize nule nez nez 10, tak se tam dava tech -7 aby to byly mensi cisla, to same pro ty dalsi cleny)
100 deleno 17 da zbytek 15, takze dalsi clen 15*a2 nebo -2*a2
1000 deleno 17 da zbytek 14, takze -3*a3
atd...

(nevim, jestli tohle je to, co ti neni jasne)

Offline

 

#7 19. 02. 2011 12:50

VojtechSejkora
Příspěvky: 176
Reputace:   
 

Re: Dělitelnost čísel od 1 do 1000

↑ Lumikodlak:
aha díky přesně to mi nebylo jasné:D takže tam dávají bližší k nule a + nebo - ... ok tak dík... teď už to konečně chápu

Offline

 

#8 19. 02. 2011 14:08 — Editoval VojtechSejkora (19. 02. 2011 14:09)

VojtechSejkora
Příspěvky: 176
Reputace:   
 

Re: Dělitelnost čísel od 1 do 1000

↑ vojta01:
čoveče nevím proč, ale píšemi že se neschoduje návratový typ nebo tak něco

přesně mě to píše
"conflicting types for 'mocnina'"

a já jelikož jsme nikdy dříve nedělal v céčku tak vážně nevím co s tím je

Code:

unsigned long long int mocnina (int n, int x) {  
       unsigned long long int vystup=1L;
      for(;n>0;n--)
        vystup=x * vystup;         
        
        return vystup;
    }

když mi poradíš co dělám blbě budu moc rád

Offline

 

#9 19. 02. 2011 14:33

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: Dělitelnost čísel od 1 do 1000

↑ VojtechSejkora:
Spíš napiš tu část, kde fci voláš. Mně to funguje.


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#10 19. 02. 2011 14:55

VojtechSejkora
Příspěvky: 176
Reputace:   
 

Re: Dělitelnost čísel od 1 do 1000

↑ gladiator01:

Code:

unsigned long long int palindrom=0;
               for(;q<pulkaD;q++){
                  palindrom+=cifra[q]*mocnina(D-q-1,10);
                  palindrom+=cifra[q]*mocnina(q,10);                             
               }

Offline

 

#11 19. 02. 2011 15:38 — Editoval gladiator01 (19. 02. 2011 15:43)

gladiator01
Místo: Jindřichův Hradec
Příspěvky: 1587
Škola: ZČU FAV - SWI
Pozice: absolvent
Reputace:   53 
Web
 

Re: Dělitelnost čísel od 1 do 1000

↑ VojtechSejkora:
Nevim, asi budeš muset poslat celý zdroják.
Zkontroluj si datové typy u cifra[q] a D.

Nebo třeba tam chybu nemáš a nezvládá to tvůj kompilátor (nevím jestli je to možné?).


Naděje jako svíce jas, potěší srdce štvané, čím temnější je noční čas, tím zářivěji plane.
VIVERE - MILITARE EST (Seneca)
Vím, že nic nevím. - Sokrates

Offline

 

#12 19. 02. 2011 15:42

VojtechSejkora
Příspěvky: 176
Reputace:   
 

Re: Dělitelnost čísel od 1 do 1000

↑ gladiator01:
cifra[q] je typu short a D je tipu int

Offline

 

#13 19. 02. 2011 18:13

VojtechSejkora
Příspěvky: 176
Reputace:   
 

Re: Dělitelnost čísel od 1 do 1000

↑ Lumikodlak:

a když mi pak výjde po tom oc jsme to již jednou tím vzorcem prohnal něco jako třeba

54345

tak mohu o5 aplikovat stejný postup i na toto číslo dokud nedostanu nějaké jednoduché třeba 20 nebo tak že?

nejsem si tím totiž úplně jist dík

Offline

 

#14 19. 02. 2011 18:19

sL1
Příspěvky: 41
Reputace:   
 

Re: Dělitelnost čísel od 1 do 1000

Proč je tam 2x long?

Offline

 

#15 23. 02. 2011 00:55

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Dělitelnost čísel od 1 do 1000

↑ VojtechSejkora:
Podle me ano, nevidim duvod, proc by ten vzorec nesel pouzit znova, ale priznam se, ze jsem ho sam nikdy nepouzival :-)
↑ sL1:
2x long to by mel byt 64-bitovy integer.

Offline

 

#16 23. 02. 2011 01:00

sL1
Příspěvky: 41
Reputace:   
 

Re: Dělitelnost čísel od 1 do 1000

Už jsem si to vygoogli. Díky :)

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson