Vinnaren i pepparkakshustävlingen!
2013-09-18, 14:02
  #1
Medlem
Jag ska skriva en funktion som skriver ut alla primtalsfaktorer av ett tal, tex 24=2*2*2*3
Hur ska koden se ut?? Tacksam för hjälp!!
Citera
2013-09-18, 16:19
  #2
Medlem
c^2s avatar
Citat:
Ursprungligen postat av tettetette
Jag ska skriva en funktion som skriver ut alla primtalsfaktorer av ett tal, tex 24=2*2*2*3
Hur ska koden se ut?? Tacksam för hjälp!!
Är på språng nu, men först bör du skriva en funktion som hittar primtal. Sedan bör du skriva en funktion som testar att dividera talet med dessa primtal.
Citera
2013-09-18, 16:45
  #3
Medlem
en metod som är hyffsat ineffektiv är denna !
Kod:
function primtalsFaktoriserare(talSomSkallFaktoriseras) 
isNotFactorized = true ; 
is true = false 
while(isNotFactorized) 
p = 1 
while (isTrue) 
 yTmp = randi(1,1) ;      
 if (isPrime(yTmp))    
  y(p) = yTmp 
  p = p + 1 
 end 
 if p > 100 
  isTrue = false  
 end 
end 
NP = 1 
for i = 1:100 
 NP = NP*y(i)
 if talSomSkallFaktoriseras = NP 
 disp 'primtalsfaktorer = ', y(1:i)
 isFactorized = false 
end 
end
Citera
2013-09-19, 16:08
  #4
Medlem
Tack för snabba svar...jag kanske är extremt trög (är väldigt nybörjare på matlab) men får inte riktigt koden att fungera...
Citera
2013-09-19, 16:23
  #5
Medlem
Oj,
Sorry, men den koden är inte seriös då den slumpar ut primtal tills den hittar primtalsfaktorerna.
Jag tycker att du skall börja med att skapa en funktion som hittar primtal sen kan man använda låga primtal för att se om de är jämna delare.

t.ex.
primtalsfaktorisera 22,
ok hitta primtal upp till 22; 1,2,3,5,7,11,13,17,19
börja nerifrån
22/2 är en jämn delare
11/2 är inte en jämn delare
är 2 = 22, nej fortsätt
11/3 är inte en jämn delare
11/5 är inte en jämn delare
11/7 är inte en jämn delare
11/11 är en jämn delare
är 2*11 = 22? ja, då slutar algoritmen.
Citera
2013-09-19, 16:39
  #6
Medlem
Tack...jag var inne på samma spår i tänket men har lite svårt att få ner det till koden men tror det blir lite enklare för mig med din vägledning
Citera
2013-09-19, 17:03
  #7
Medlem
Citat:
Ursprungligen postat av tettetette
Tack...jag var inne på samma spår i tänket men har lite svårt att få ner det till koden men tror det blir lite enklare för mig med din vägledning
När man gör algoritmer så tycker jag att det är lättast om man gör två-tre exempel på papper så att man ser vilka steg som behövs.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback