echo_chenchen 2022-10-08 14:29 采纳率: 80.2%
浏览 21
已结题

求素数因子,为啥没有输出??


#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int array[50]={'\0'};
    int count=0;
    for(int i=0;i<n;i++)
    {
      if(!n%i)
     {
      array[count]=i;
      count++;
     }
    }
    int flag=0;
    for(int i=0;i<count;i++)
    {    flag=1;
      for(int j=2;j<array[i];j++)
     {
        if(!array[i]%j)//是素数
        {
         flag=0;
        }
     }
     if(flag)
         printf("%d",array[i]);

    }
}

  • 写回答

2条回答 默认 最新

  • lzl2040 新星创作者: 人工智能技术领域 2022-10-08 15:03
    关注
     
    #include<stdio.h>
    int main()
    {
        int n;
        scanf("%d",&n);
        int array[50]={0};
        int count=0;
        for(int i=1;i<=n;i++)//从1开始
        {
          if(n % i == 0)//不能用!n%i,因为先计算 !n 也就是等于0,然后就是0 % i,结果是0
          {
              array[count]=i;
              //printf("%d\n",i);
              count++;
          }
        }
        int flag=0;
        for(int i=0;i<count;i++)
        {    
            flag=1;
            for(int j=2;j<array[i];j++)
            {
                if(array[i] % j == 0 && array[i] != 2)//是素数
                {
                 flag=0;
                 break; 
                }
            }
             if(flag && array[i] != 1)
                 printf("%d ",array[i]);
     
        }
    }
     
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月17日
  • 已采纳回答 10月9日
  • 创建了问题 10月8日