质因子分解-C语言求解答 !!!!!!!!!

下个案例答案的输出会先打印上个案例答案是为什么?


#include<cstdio>
#include<math.h>
const int maxn = 100010;

bool isPrime(int n){
    if(n==1) return false;
    int sqr = (int)sqrt(1.0*n);
    for(int i=2;i<=sqr;i++){
        if(n % i ==0) return false;
    }
    return true; 
} 

int prime[maxn],pNum = 0;
void Find_Prime(){
    for(int i = 1;i < maxn;i++){
        if(isPrime(i)==true){
            prime[pNum++] = i;
        }
    }
}

struct factor{
    int x,cnt;
}fac[10];

int main(){
    Find_Prime();
    int k,n,num =0;
    scanf("%d",&k);
    while(k--){
        scanf("%d",&n);
        if(n==1) printf("1=1");
        else{
            int sqr = (int)sqrt(1.0*n);
        
            for(int i = 0;i < pNum && prime[i] <= sqr;i++){
                if(n % prime[i] ==0){
                    fac[num].x = prime[i];
                    fac[num].cnt = 0;
                    while(n % prime[i] == 0){
                        fac[num].cnt++;
                        n /= prime[i];
                    }
                    num++;
                }
                if(n == 1) break;
            }
            
            if(n != 1){
                fac[num].x = n;
                fac[num++].cnt = 1;
            }
                
            for(int i = 0;i < num;i++){
                if(i>0) printf("*");
                printf("%d",fac[i].x);
                if(fac[i].cnt > 1){
                    printf("^%d",fac[i].cnt);
                }
            }
            printf("\n");     
        }    
    }
    return 0;
}

全部评论

相关推荐

挣K存W养DOG:他真的很中意你,为什么不回他
点赞 评论 收藏
分享
听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务