我一直试图用下面的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的最大素因数是什么?“
发布于 2015-09-22 14:57:30
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永远不会发生)。
https://stackoverflow.com/questions/32709716
复制相似问题