Springen naar inhoud


- - - - -
Solved

Opdracht 003



  • Log in a.u.b. om te beantwoorden
Er zijn 2 reacties in dit onderwerp

#1 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3590 berichten
    Laatst bezocht 14 jul 2018 15:51
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 14 oktober 2010 - 12:48

Citeren

The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?


#2 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3590 berichten
    Laatst bezocht 14 jul 2018 15:51
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 14 oktober 2010 - 12:48

Visual Basic Code:
Dim Number As Double = 600851475143
Dim Prime As Double = 2
Dim PrimeYN As Boolean
Do
PrimeYN = True
If Number Mod Prime = 0 Then
For I = 2 To Prime
If Prime Mod I = 0 And I <> Prime Then
PrimeYN = False
Exit For
End If
Next
If PrimeYN = True Then
End If
End If
Prime += 1
Application.DoEvents()
Loop While Prime < 600851475143
TextBox1.Text = Prime
'NOTE : Getal was in paar seconde gevonden, maar blijf doortellen door het eindgetal!



#3 RedThread

RedThread

    Beheerder VBIB

  • Beheerder
  • 3590 berichten
    Laatst bezocht 14 jul 2018 15:51
  • LocatieTongeren,Belgium.
Inzender

Geplaatst op 14 oktober 2010 - 12:57

Citeren

Probleem 3

Beetje zitten spelen met probleem 3. Deze lost het op na 4 priemgetallen/fractie ve seconde. Kwam eerst origineel getal terug uit(in comment gezet). Heb dan een WriteLine gedaan van i en zag dat de uitkomst erbij was. Toevalstreffer http://www.vbib.be/p...tyle_emoticons/default/icon_cool.gif .

om het samen te vatten, geldig in dit(en andere gevallen): Elke keer je een priemgetal tegenkomt dat een natuurlijk getal en factor is van het product, kan je het product door dat priemgetal delen. Uiteindelijk kom je 1 uit.

Als je al die priemgetallen met elkaar vermenigvuldigd, kom je opnieuw op het origineel getal.


Visual Basic Code:
Function Problem3() As Long
	Const TARGET As Long = 600851475143
	Dim result As Long = 1
	Dim max As Long = TARGET
	'Dim original As Long = 1
	For i As Long = 3 To max Step 2
		If TARGET Mod i = 0 Then
			If IsPrime(i) Then
				max = CLng(max / i)
				If result < i Then result = i
				'original *= i
				If max < 3 Then Exit For
			End If
		End If
	Next
	' MsgBox(original) ' terug 600851475143 :(
	Return result
End Function


(offtopic: wel haringske :D )

Note : Contributed by Vozzie





Ook met taq Solved voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[Solved] Untitled 1

Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)