末路皇妃 电影上:C语言程序题 在线等 100分悬赏

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 13:43:35
设计程序,
对某合数进行因数分解,分解到素数为止。若输入的值是-124,程序将输出
-124=-2×2×31

参考一下这个吧,我原来写的,有些错误
我的程序先生成一个素数数组,分解质因数时依次从这个数组里面取元素
但我的程序只限于分解比较小的数,而且会出现程序异常的错误

unknown software exception(0xc0000094),位置为0x004011be
unknown software exception(0xc0000094),位置为0x004011be
unknown software exception(0xc0000027),位置为0x7c80e0b9

#include <stdio.h>
#include <math.h>
#define LB 2
#define UB 100

void create_prime_array(int *p){
int k,i,j;
for(j=LB;j<=UB;j++){
k=sqrt(j);
for(i=2;i<=k;i++) /*i as divisor*/
if(j%i==0) break;
if(i>k) {*p=j;p++;} /*save prime j to an element of array which
pointer p pointed*/
}/*for*/
}

void prime_factor(int a, int *p){
for(;a!=0;p++){
while(1){
if(a%*p==0) {printf("%d\t",*p);a=a/(*p);}
if(a%*p!=0) break;
}/*repeat*/
}/*for*/
}

void main(){
int x,a[50]={0};
puts("Enter an integer >2");
scanf("%d",&x);
create_prime_array(a);
prime_factor(x,a);
}