编写程序,将一个数组中的每个元素分解质因数,要求分解质因数用函数调用实现

2024-11-21 20:06:40
推荐回答(1个)
回答1:

#include

int prime(int i) //判断素数

{

 int j;

 if(i<2)

  return -1;   //既不是素数也不是合数

 for(j=2;j<=i/2;j++)

  if(i%j==0)

   return 0;    //合数

 return 1;      //素数

}

void factor(int i)  //分解质因数

{

 int j;

 if(prime(i)==0)

 {

  printf("%d=",i);

  for(j=2;j<=i;)

  {

   if(i%j!=0) //不能被j整除,就让j自加1

   {

    j++;

   }

   else    //能被j整除,就让i等于被除后的数

   {

    i=i/j;

    printf("%d×",j);

   }

  }

  printf("\b \n");  //退格,把最后的“×”去掉

 }

 else

  printf("%d不是合数,不能分解质因数。\n",i);

}

main()     

{

 int i,a[10];

 printf("请输入10个合数\n");

 for(i=0;i<10;i++)

 {

  printf("a[%d]=",i);

  scanf("%d",&a[i]);

 }

 printf("分解质因数如下:\n");

 for(i=0;i<10;i++)

  factor(a[i]);

}