HSP kaijou

hiroi様のとこのサイトの階乗の処理をHSPで書いてみました

http://www.nct9.ne.jp/m_hiroi/light/ruby01.html

#const INT_MAX 256*256*256*128-1

mes INT_MAX
mes INT_MAX+1

mes INT_MAX / (128*256)
mes "kaijou"
repeat 15,1
mes ""+cnt+":"+ kaijou(cnt)
loop
stop

// p4mul_A(例えば10000)*p4mul_B(例えば10000)が
// over flowしないかcheck
#defcfunc over_INT_MAX int p4mul_A,int p4mul_B
	if p4mul_B==0:return 1
	if p4mul_A<(INT_MAX / p4mul_B){
		return 1
	}else{
		return -1
	}

#defcfunc kaijou int p
	m = 1
	max=p+1
	for i,1,max,1
		if over_INT_MAX(m,i)==-1:return -1
		m*=i
	next
	return m