// susu.cpp : Defines the entry point for the console application.
/*
因式分解程序 xmxoxo 2006-11-3 at XiaMen
*/
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
#include "iostream.h"
//判断是否为素数.
bool IsSuSu(long value)
{
int i;
bool j;
if (value<=1)
{
return 0;
}
else
{
if (value==2)
{
return 1;
}
j=0;
for (i=2;i<=(int)sqrt(value);i++)
{
if ((value%i)==0)
{
j=1;
break;
}
}
if (!j)
{
return 1;
}
else
{
return 0;
}
}
}
// 主程式
int main(int argc, char* argv[])
{
int i;
int n;
int m;
int c;
while (1)
{
printf(" 请输入正整数(0退出):");
scanf("%d",&n);
if (n<=0)
{
break;
}
m=n;
c=0;
printf(" %d=",n);
for (i=2;i<=n;i++)
{
if (IsSuSu(i))
{
while (m%i==0)
{
c++;
if (c>1)
{
printf("*");
}
printf("%d",i);
m=m/i;
}
if (m==1) //提前判断是否已经结束
{
break;
}
}
}
printf(" 共%d个因子。 ",c);
}
return 0;
}
/*
因式分解程序 xmxoxo 2006-11-3 at XiaMen
*/
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
#include "iostream.h"
//判断是否为素数.
bool IsSuSu(long value)
{
int i;
bool j;
if (value<=1)
{
return 0;
}
else
{
if (value==2)
{
return 1;
}
j=0;
for (i=2;i<=(int)sqrt(value);i++)
{
if ((value%i)==0)
{
j=1;
break;
}
}
if (!j)
{
return 1;
}
else
{
return 0;
}
}
}
// 主程式
int main(int argc, char* argv[])
{
int i;
int n;
int m;
int c;
while (1)
{
printf(" 请输入正整数(0退出):");
scanf("%d",&n);
if (n<=0)
{
break;
}
m=n;
c=0;
printf(" %d=",n);
for (i=2;i<=n;i++)
{
if (IsSuSu(i))
{
while (m%i==0)
{
c++;
if (c>1)
{
printf("*");
}
printf("%d",i);
m=m/i;
}
if (m==1) //提前判断是否已经结束
{
break;
}
}
}
printf(" 共%d个因子。 ",c);
}
return 0;
}