问一下为什么要com==1

#include <stdio.h>
int main()
{
int num1 = 18;
int num2 = 26;
int com = 0;
printf("num1 = %d ; num2 = %d \n",num1,num2);
if( num1 >= num2)
{
com = num2;
}
else
{
com = num1;
}
for(com; com > 0; com--)
{
if((num1 % com == 0 && num2 % com == 0) || com == 1 )
{
printf("最大公约数为: %d \n",com);
break;
}
}
return 0;
}

假设num1=2,num2=3;他们的最大公约数应该是1,但是如果没有com==1,按照这个程序的逻辑求出的最大公约数因为是0了,也就是说1是底线了