自然数nのp進法表記での桁数を求めるプログラムをつくるときに気づきました。
思わぬ落とし穴です。直接、進数変換して桁数を求めることにします。
ありがとうございます。
LET STR1$="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" !p進法の数字
FUNCTION ExBSTR$(n,p) !非負の整数nをp進法で表記する
LET s$=""
DO
LET nn=INT(n/p)
LET t=n-nn*p !MOD(n,p)
LET s$=STR1$(t+1:t+1)&s$ !下の位から
LET n=nn
LOOP UNTIL n=0
LET ExBSTR$=s$
END FUNCTION
LET p=5 !進数
FOR n=1 TO p^p !自然数
LET x=INT(LOG(n)/LOG(p))+1 !桁数
LET x2=INT(LOG2(n)/LOG2(p))+1
LET x10=INT(LOG10(n)/LOG10(p))+1
LET k=g(n,p) !進数変換による
IF k<>x OR k<>x2 OR k<>x10 THEN PRINT n; STR$(p);"#";ExBSTR$(n,p), k; x; x2; x10
NEXT n
FUNCTION g(n,p) !自然数nのp進法での桁数 ※p^c=n
LET t=1
LET c=0 !桁数
DO
LET t=t*p
LET c=c+1
LOOP WHILE t<=n
LET g=c
END FUNCTION
END