      Solved

# Opdracht 030

Er zijn 2 reacties in dit onderwerp

Beheerder VBIB

• • Beheerder
• • 3601 berichten
Laatst bezocht 08 aug 2020 23:23
• LocatieTongeren,Belgium. Inzender

Geplaatst op 14 oktober 2010 - 11:51

Citeren

Surprisingly there are only three numbers that can be written as the sum of fourth powers of their digits: 1634 = 14 + 64 + 34 + 44
8208 = 84 + 24 + 04 + 84
9474 = 94 + 44 + 74 + 44 As 1 = 14 is not a sum it is not included.
The sum of these numbers is 1634 + 8208 + 9474 = 19316.
Find the sum of all the numbers that can be written as the sum of fifth powers of their digits.

Beheerder VBIB

• • Beheerder
• • 3601 berichten
Laatst bezocht 08 aug 2020 23:23
• LocatieTongeren,Belgium. Inzender

Geplaatst op 14 oktober 2010 - 11:52

Visual Basic Code:
```
Option Strict Off

Public Class Form1

Dim break_counter As Array

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim result As Integer = 0
For counter As Integer = 2 To 999999					'skip 1 since 1 = 1^5 is not a sum
break_counter = counter.ToString.ToCharArray()	  'break number in array of char
If CalcTemp() = counter Then result += counter 'call function
Next
MessageBox.Show("the sum of all the numbers that can be written as the sum of fifth powers of their digits >>" & result.ToString)
End Sub

Private Function CalcTemp() As Integer
Dim total_sum As Integer = 0
For i = 0 To break_counter.Length - 1
total_sum += Val(break_counter(i)) ^ 5
Next
End Function
End Class

```

### #3 josk79

josk79

Master Developer

• • Leden
•     • 614 berichten
Laatst bezocht 07 apr 2020 23:55

Geplaatst op 15 oktober 2010 - 23:57

Mijn twee centen:

Visual Basic Code:
```		Public Function Solve() As String Implements IEulerSolution.Solve
Const power As Integer = 5

'bepalen tot waar onze loop moet lopen
'Ik ben ervan uitgegaan dat we niet meer cijfers hoeven te gebruiken als
' ( lengte_van_getal[9^power] ) + 1
Dim upbound As Long = CLng(9 ^ power)
upbound *= upbound.ToString.Length + 1

Dim total As Long = 0
For c As Long = 10 To upbound
Dim sum As Long = 0
'berekenen som van de 5e machten van alle cijfers
For Each cha As Char In c.ToString
sum += CLng(Long.Parse(cha) ^ power)
If sum > c Then Exit For
Next
'Is de som van de 5e machten gelijk aan het getal zelf?
If sum = c Then
Console.WriteLine(c.ToString)
total += c
End If
Next

End Function

```

Ik weet niet zeker of mijn berekening klopt om de hoogste boundary voor de zoek-loop te vinden.

### Ook met taq Solved voorzien

#### 0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers [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)