题目是这样的,想问一下各位友友还能怎么优化,让它变快

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int Pan(int min,int p,int q)
{
int m = p < q ? p : q;
for(m=m;m>=min;m--)
{
if (p % m == 0 && q % m == 0)
{
if (m == min)
return 1;
else
return 0;
}
}
return 0;
}
int main()
{
int x = 0, y = 0;
scanf("%d%d", &x, &y); int count = 0; int mix = x * y;
int max = x > y ? x : y; int p = 0, q = 0; int min = mix / max;
for (p = min;p<=max/2 ; p++)
{
for (q=p;q<=max;q++)
{
if (Pan(min, p, q) == 1)
{
if ((p * q) / min == max)
count++;
}
}
}
printf("%d", count*2);
return 0;
}