求因数的算法

来源:百度知道 编辑:UC知道 时间:2024/05/03 20:24:33
是用1—n的数分别乘以1-n,然后判断乘积是否等于n吗

如果n除以k的余数是0,则k是n的因数。

自己写了一个,用记事本保存为VBS后缀的文件:

msgbox GetPrime(inputbox(""))
Function GetPrime(number)
Dim flag
Dim sqrtmax
Dim temp
Dim max
Dim result()
Dim pri()
if number=0 then wscript.quit
temp = 0
num = number
ReDim pri(0)
pri(0) = 2
max = CInt(Sqr(number))
For i = 3 To max Step 2
sqrtmax = Int(Sqr(i))
flag = True
For j = 0 To UBound(pri)
If i Mod pri(j) = 0 Then flag = False: Exit For
If pri(j) > sqrtmax Then Exit For
Next
If flag = True Then
temp = temp + 1
ReDim Preserve pri(temp)
pri(temp) = i
End If
Next
temp = -1
For j = 0 To UBound(pri)
Do
If number Mod pri(j) = 0 Then
temp = temp + 1