【正序分解整数】

//整数正序分解
#include

int main()
{
	int x;
	scanf("%d",&x);
	int t=x;
	int mask=1;
	while(t>9){          //如果用do while这个循环,就是不管什么数进去都是mask会*10.如果x=1,mask=10,
		t/=10;     //显然是不对的。所以应该用while循环
		mask*=10;
	}
	int d;
	do{
		d=x/mask;
		printf("%d ",d);
		x%=mask;
		mask/=10;
	}while(mask>0);
	return 0;
 
	
}
//求最大公约数	(辗转相除法)
//如果b等于0,计算结束,a就是最大公约数。
//否则,算a/b的余数,让a等于b,b等于那个余数,回到第一步
#include

int main()
{
	int a,b;
	scanf("%d %d",&a,&b);
	int t;
	while(b!=0){
		t=a%b;
		a=b;
		b=t;
	}printf("%d",a);
	return 0;
	
}

你可能感兴趣的:(c语言,算法)