将一个正整数分解质因数.

题目描述:
输入
输入一个正整数n(2<=n<=2000)。

			输出
			从小到大输出n的所有质因子,每两个数之间空一格。

			样例输入 
			20
			样例输出 
			2 2 5
# include<stdio.h>
# include<math.h> 
int main()
{
	int m,n,i,j,flag;
	scanf("%d",&n);
	while(n!=1)
	{
		flag=1;  //是不是质因数的标志
		for(i=2;i<=n;i++)
		{
			if(n%i==0)  //先找出因数
			{
				for(j=2;j<sqrt(i);j++)  //使用sqrt()加快速度判断是不是质数
				{
					if(i%j==0)
					{
						break;  //是质数直接结束本次循环
					}
				}
				if(flag)
				{
					printf("%d ",i);
					n/=i;
					break;  //结束本次循环i从二开始
				}
			}
		}
	}
	return 0;
}
发布了43 篇原创文章 · 获赞 1 · 访问量 768

猜你喜欢

转载自blog.csdn.net/Du798566/article/details/104218017