C语言因式分解

2022-04-08 社会 135阅读
#include
#include
#include
  
  
unsigned int m=2;
unsigned int cnt=1;
  
void Factor(int n, char *msg, char printYes);
int main()
{
    char s[100]={0};
    char flag='y';
    printf("------求整数的因式分解------\n请输入正整数m(>1):");
    scanf("%u", &m);
    printf("打印详细分解情况吗?[y|n,回车打印]");
    scanf("%*c%c",&flag);
    if(m    {
        printf("error input!\n");
        exit(-1);
    }
    if(flag!='n')
        printf("%d =  %d \n", m,m);
    Factor(m, s,flag);
    if(cnt==1)
        printf("\n%d是素数\n",m);
    printf("\n------");
    printf("一共有%d种", cnt);
    printf("------\n");
    return 0;
}
  
void Factor(int n, char *msg,char printYes)
{
    char s2[100]={0};//保存当前分解的部分结果
    if(n==1)
        return ;
    for(int i=2;i    {
        if (n%i==0)
        {
            if(n==m)
                sprintf(msg, "%d = ", m);
            sprintf(s2,"%s %d * ",msg, i);//因式分解部分结果保存在字符串s2中
  
            if(printYes!='n')
                printf("%s %d\n",s2,n/i);//打印结果(包括最后一个因子)
            Factor(n/i,s2,printYes);
            cnt++;
        }
    }
}

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com