//
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 ;
}