qq_18147713 2021-11-17 09:59 采纳率: 73.8%
浏览 49
已结题

C语言编程问题求解答

img

  • 写回答

2条回答 默认 最新

  • 从善若水 5G/6G通信领域优质创作者 2021-11-17 10:31
    关注
    
    void yinshu_f(int *yinshu,int *n,int num)
    {
        for(int j=2;j<=num;++j)
        {
            if(num%j==0)
            {
                int flag=0;
                for(int k=2;k<=sqrt(j);++k)
                {
                    if(j%k==0)
                    {
                        flag=1;
                        break;
                    }    
                }
                if(flag==0)
                {
                    yinshu[(*n)++]=j;
                    //printf("%d\n",j); 
                    yinshu_f(yinshu,n,num/j);
                    return ;
                }
                    
            }
        }
    }
    
    int main()
    {                   
        int n,num;
        int i=0;
        scanf("%d",&n);
        
        int yinshu[100],len=0;
        
        for(i=0;i<n;++i)
        {
            scanf("%d",&num);
            yinshu_f(yinshu,&len,num);
            printf("%d=",num);
            for(int i=0;i<len;++i)
            {
                printf("%d",yinshu[i]);
                if(i!=len-1) 
                    printf("*");
                else
                    printf("\n");
            }
            len=0;
        }
        
        return 0;    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月25日
  • 已采纳回答 11月17日
  • 创建了问题 11月17日