C语言之基本算法35—分解质因数(方法二)

//矩阵基础
/*
==================================================================
题目:输入一个正整数,将其分解为质因式,如:60=2*2*3*5;若本身是质
数,则输出如:307是一个质数!
==================================================================
*/
#include
int sushu(int n)
{
int i,k;
k=n/2;//控制结束位置!
for(i=2;i<=k;i++)
if(n%i==0)break;
if(i>k) return 1;
else return 0;
}
void main()
{
int m,n,i,c,y[100];
printf("输入要分解的数:");
scanf("%d",&n);
while(n>0)
{
m=n;
c=0;
if(sushu(m))
printf("%d 是一个素数\n",m);
else
{
for(i=2;i<=m;i++)
{
while(m%i==0)//初学者可能会在这里写成if!想想为什么不能写成if?
{
m/=i;
y[c++]=i;
}
}
printf("%d=%d",n,y[0]);
for(i=1;i


 
  
 
 

你可能感兴趣的:(C语言—基本算法)