当前位置:编程学习 > C/C++ >>

问题八十四:分解因子

\


print?#include <stdio.h> 
 
int main() 

    int i; 
    int j=0; 
    int begin_num; 
    int num; 
    int mark; 
    int count[100]; 
    int collect[100]={0}; 
 
    printf("please enter a number:"); 
    scanf("%d", &num); 
     
    begin_num=num;              //用begin_num保持num,下面操作会改变num的值 
    for(i=1; 2*i-1<num; i++)    //用奇数,偶数被省略 
    { 
       mark=2*i-1;              //奇数 
       if(mark==1)              //因为2是质数也是偶数,所以增加2 
       { 
          mark=2; 
       } 
 
       if(num%mark==0) 
       { 
          count[j]=mark;             // 记录mark被除的次数 
          while(num%mark ==0) 
          { 
              num=num/mark; 
              collect[j]++;        // 记录mark被除的次数 
          } 
          j++; 
       } 
    } 
 
    for(i=0; i<j; i++) 
    {    
        if(i==0)        //限制打印一次 
        { 
           printf("%d==", begin_num); 
        } 
        printf("%d(%d)",count[i], collect[i]); 
        if(i==j-1)     //最后换行 
        { 
            printf("\n"); 
        } 
    } 

#include <stdio.h>

int main()
{
    int i;
 int j=0;
 int begin_num;
 int num;
 int mark;
    int count[100];
 int collect[100]={0};

 printf("please enter a number:");
    scanf("%d", &num);
   
 begin_num=num;              //用begin_num保持num,下面操作会改变num的值
 for(i=1; 2*i-1<num; i++)    //用奇数,偶数被省略
 {
    mark=2*i-1;              //奇数
    if(mark==1)              //因为2是质数也是偶数,所以增加2
    {
       mark=2;
    }

       if(num%mark==0)
    {
       count[j]=mark;             // 记录mark被除的次数
       while(num%mark ==0)
    {
           num=num/mark;
        collect[j]++;        // 记录mark被除的次数
    }
    j++;
    }
 }

 for(i=0; i<j; i++)
 {  
  if(i==0)        //限制打印一次
  {
     printf("%d==", begin_num);
  }
     printf("%d(%d)",count[i], collect[i]);
  if(i==j-1)     //最后换行
  {
      printf("\n");
  }
 }
}  


\
补充:软件开发 , C语言 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,