by 三毛CAT » 2008年11月15日(土) 19:55
与えられた数を素因数分解し、文字列の形で返します。
関数本体 [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
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
与えられた数を素因数分解し、文字列の形で返します。
[hide=関数本体][code]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[/code][/hide]
[hide=サンプルスクリプト][code]#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[/code][/hide]