项目欧拉3

时间:2015-09-22 06:21:25

标签: vb.net math

我一直在尝试使用以下vb代码解决关于项目euler的问题3,但我不知道为什么它不起作用。有人可以指出我正确的方向吗?

Sub Main()
    Dim p As Int64 = 600851475143
    Dim y As Integer

    For i As Int64 = p / 2 To 1 Step -1
        If p Mod i = 0 Then
            y = 0
            For n As Int64 = 1 To Math.Floor(i ^ 0.5) Step 1
                If i Mod n = 0 Then
                    y = y + 1
                End If

            Next
            If y = 0 Then

                Console.WriteLine(i)
                Console.ReadLine()

            End If

        End If

    Next

End Sub

问题是“13195的主要因素是5,7,13和29。

600851475143号码的最大主要因素是什么?“

1 个答案:

答案 0 :(得分:3)

For n As Int64 = 1 To Math.Floor(i ^ 0.5) Step 1
    If i Mod n = 0 Then

您从n=1开始。每个数字均匀分为1.

(每次y = y+1If y = 0 Then永远不会发生。