请教一个关于欧几里得的算法的问题
小弟是超级新手做一道题时遇到了求最大公约数 我不知道算法 一查 发现应该用欧几里得定理 但是我在编译时遇到了很多问题 如下
#include <stdio.h>
#include <math.h>
main()
{
int p,q,a,b;
printf("Please enter the p and q:\n");
scanf("%d%d",&p,&q);
if (p>q)
{
b=p%q;
while(b!=q&&b!=0)
{
p=q;
q=b;
}
printf("它们的最大公约数是%d",q);
}
else if(p<q)
{
a=q%p;
while(a!=p&&a!=0)
{
q=p;
p=a;
}
printf("它们的最大公约数是%d",p);
}
else if (p=q)
{
printf("它们的最大公约数是%d",p);
}
}
改程序无法描述 最大公约数的情况 怎么补冲啊 还有一点我很不解
就是我发现 while(a!=p&&a!=0)
中的a!=p&&是不能去掉的 我认为就a!=0就可以了 怎么回事啊
请大家帮帮忙好么?