开发者社区 问答 正文

在哪里放置有力数字的声明?

我已经制作了这个程序来计算数字分解,例如60 = 2^2 * 5 * 3。我如何修改我的代码以打印强大的数字,例如9000 = 2^3 * 3^2 * 5^3不使用math.h库和不使用数组?非常感谢你!!

#include<stdio.h>
#define MAX 1000

int main(){
    int num;

    int counter;
    int number;
    char factorizationOutput;
    int isAchiles = 0;

    int factor=2;
        for(counter=2;counter<=MAX;counter++){
            isAchiles = 1;
            number=counter;
            int factor=2;

            while(factor<number){

                int power=0;

                if(number%factor==0){

                    while(number%factor==0){
                        number=number/factor;
                        power++;

                    }
                    if(power == 1){
                        isAchiles = 0;
                    }
                    printf("%d^%d",factor,power);
                    if(number!=1)
                        printf(" X ");

                }
                factor++;
            }
            if(number!=1)
                printf("%d^1.\n",factor);

            if(isAchiles == 1){
                printf("factorazation of number %d is: ",counter);

            }



}

}

展开
收起
kun坤 2019-11-29 11:11:08 286 分享 版权
1 条回答
写回答
取消 提交回答
  • #include<stdio.h>
    
    int main(void)
    {
        int n;
        scanf("%d", &n);
        printf("%d = ", n);
        for(int i = 1; i <= n; i++)
        {
            int count = 0;
            for(int j = 1; j <= i; j++)
            {
                if(i % j == 0)
                {
                    count++;
                }
            }
            int l = 0;
            if(count == 2)
            {
                while(n % i == 0)
                {
                    l++;
                    n = n/i;
                }
                printf("%d^%d*", i, l);
            }
        }
    }
    
    
    2019-11-29 11:15:41
    赞同 展开评论
问答地址: