关于质因数分解的问题,大家能帮我看一下哪里出了问题吗
题目是这样的
#include<stdio.h>
#include<math.h>
int isprime(int n);
int main(void)
{
int n,i,j,k,s,b,answer;
int m[1000];
int h[100000]={0};
scanf("%d",&n);
printf("%d=",n);
answer=isprime(n);
i=n;
if(answer==1)
printf("%d",n);
else
{
for(k=0,j=0;k<=sqrt(i);k++)
{
if(n%k==0)
{
m[j]=k;
j++;
}
else continue;
}
s=strlen(m);
for(i=0;i<s;i++)
h[m[i]]++;
j=0;
k=1;
for(i=0;i<=10000;i++)
{
if(h[i]!=0)
{
j++;
if(h[i]>=2)
printf("%d^%d",i,h[i]) ;
else
printf("%d",i);
if(++k<j)
printf("*");
}
else continue;
}
}
return 0;
}
int isprime(int n)
{
int i;
for(i=2;i<=(n-1);i++)
{
if(n%i==0)
break;
else continue;
}
if(i=n-1)
return 1;
else return 0;
}