关于因式分解程序的问题,希望大家能帮帮忙。
小弟刚自学的c语言,下面是我写的一个关于因式分解的程序,出现了不少问题,希望各位大侠能指出改进,小弟不胜感激。我想最后输出的时候变成9=3^2,但是由于种种问题,不得不将其设置成9=1*3^2,希望各位大侠帮忙支支招。在此谢过。下面是自写的程序#include<stdio.h>
#include<math.h>
int primer(int);
void part(int,int);
int main(void)
{
int n,i,m;
printf("enter a number:\n");
scanf("%d",&n);
printf("%d=%d",n,1);//为了输出格式变成9=1*3^2,才设置的这句,如果能改进希望大家指出,谢谢。
for(i=2;i<=n;i++)//设置循环来找素因子。
{
if(primer(i)==1)//判断是否为素数。
part(n,i);//若i是n的一个素因数,输出由i的j次方组成的一个因数。
}
printf("\n");
printf("\n");
printf("\n");
return 0;
}
/*这个函数是用来分解出n的一个素因子j次方组成的因子,如part(12,2)可找出一个因子为2^2*/
void part(int n,int i)
{
int j=0;
if(n%i==0)
{
while(n%i==0){
n=n/i;
j++;}
printf("*(%d^%d)",i,j);
}
}
/*这个函数是用来判断是否为质数的*/
int primer(int n)
{
int i,z=0;
if(n==2)
z=1;
else{
for(i=2;i<n;i++)
{
if(n%i!=0){
z=1;
continue;}
else{
z=0;
break;}
}
}
return z;
}