#include <stdio.h>
int main(void)
{
int a,d;
int num,index=0;
int name[100];
int line=0;
int flag=0;
printf("输入一个正整数:");
scanf("%d" ,&a);
printf("公因数如下:\n");
for (d=2;(d*d<=a);d++)
if (a%d==0)//判断能分解的条件
{
if ((d*d)!=a)
{
name[index]=d;
name[index+1]=a/d;
index+=2;
}
else
{
name[index]=a/d;
index++;
}
}
for (num=0;num<index;num++)
{
printf("%5d",name[num]);
line++;
flag++;
if (line%2==0)//两个一行输出
printf("\n");
}
printf("\n公因数共有%d个",flag);
return 0;
}
求公因数,从2开始。两个一行输出。对于公因数相同的也能处理
输入一个正整数:36
公因数如下:
2 18
3 12
4 9
6
公因数共有7个
--------------------------------
Process exited after 2.425 seconds with return value 0
请按任意键继续. . .