yakubunは逆順にすれば

fract yakubun(fract a1) {
int i;for(i=a1.bunshi;i>1;i--) if(a1.bunshi%i==0&&a1.bunbo%i==0){a1.bunshi/=i;a1.bunbo/=i;}
}