関数本体 [ここをクリックすると内容が表示されます]
コード: 全て選択
Function soinsuu(num As DWord) As String
Dim n As DWord
Dim i As DWord
Dim count As DWord
Dim result As String
n=num
i=2
result=""
While n>1
count=0
While n mod i=0
count++
n=n/i
Wend
If count>0 Then
If count=1 Then result=result+Str$(i)+"*" Else result=result+Str$(i)+"^"+Str$(count)+"*"
End If
i++
Wend
If result="" Then
result=Str$(n)+"*"
End If
soinsuu=Left$(result,Len(result)-1)
End Function
サンプルスクリプト [ここをクリックすると内容が表示されます]
コード: 全て選択
#N88BASIC
Dim num As DWord
*start
Print "素因数分解する数を入力してください。"
Input num
Print soinsuu(num)
Goto *start
Function soinsuu(num As DWord) As String
Dim n As DWord
Dim i As DWord
Dim count As DWord
Dim result As String
n=num
i=2
result=""
While n>1
count=0
While n mod i=0
count++
n=n/i
Wend
If count>0 Then
If count=1 Then result=result+Str$(i)+"*" Else result=result+Str$(i)+"^"+Str$(count)+"*"
End If
i++
Wend
If result="" Then
result=Str$(n)+"*"
End If
soinsuu=Left$(result,Len(result)-1)
End Function