我一直在尝试使用以下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号码的最大主要因素是什么?“
答案 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+1
,If y = 0 Then
永远不会发生。