>>508
使い方:
int a, b;
change(8, &a, &b);  // a=2 b=2になる

void change(int n, int *a, int *b)
{
 int s[32], i=2, c=0;
 *a = 1; *b = 1;
 while (n > 1) {
  if (n % i == 0) {
   if (((c==0)?0:s[c-1]) == i) {
    *a *= i; s[--c] = 0;
   } else
    s[c++] = i;
   n /= i;
   continue;
  } else
   i++;
 }
 for (i=0; i<c; i++) *b *= s[i];
}