对某合数进行因数分解,分解到素数为止。若输入的值是-124,程序将输出-124=-2*2*31

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:50:09
若输入的值是-124,程序将输出-124=-2*2*31

#define MAX 100
先写一个判断一个数是否素数的子函数Judge,是素数返回true
用此函数建立一个足够大的素数表,假设有100个素数,存放于数组中 a[MAX]:2,3,5,7,11……
主程序
输入数字X(可能要long类型)
cout<<X<<"=";
if(X<0)
cout<<"-";

while(!Judge(X))
{
for( i=0;i<MAX; i++)
{
if( X%a[i]==0 )
{
cout<<"*"<<a[i];
X = X%a[i];
break
}
}
}

我没调过
大概是这样子

这么写。
#include <stdio.h>
#include <math.h>

int main( )
{
int n, t, i, j, s = 2, tmp;
scanf("%d", &n);
printf("%d=", n);
if ( n < 0 )
{
printf("-");
n = -n;
}
t = n;
while ( t != 1 )
{
for ( i = s; ; i++ )
{
tmp = 1;
for ( j = 2; j <= sqrt( i ); j++ )
if ( i % j == 0 )
{
tmp = 2;