LH魔王 发表于 2020-6-29 14:56:09

C语100题——14

本帖最后由 LH魔王 于 2020-7-1 17:52 编辑

#if(0)
第14题:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5.
#endif

#include<stdio.h>
#include<math.h>

int judgement(int x)
{
        int j;
        if(sqrt(x)<2)
        {
                return x;
        }
        else
        {
                for(j=2;j<=sqrt(x);j++)
                {
                        if(x%j==0)
                        {
                                return j;
                                break;
                        }
                        if(j==(int)sqrt(x))
                        {
                                if(x%j != 0)
                                {
                                        return x;
                                }
                        }
                }
        }       
}

int main()
{
        int obj,result,n,total=1;
        printf("请输入一个整数:");
        scanf("%d",&obj);
        n=obj;
        result=judgement(n);
        if(result==obj)
        {
                printf("您所输入的整数为素数!\n");
                printf("%d=1*%d",obj,obj);
        }
       
        else
        {
                printf("%d=",obj);
                while(1)
                {
                        total=total*result;
                        printf("%d*",result);
                        n=n/result;
                        result=judgement(n);
                        if(total==obj)
                        {
                                break;
                        }               
                }
                printf("1");
        }
       
}
页: [1]
查看完整版本: C语100题——14