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


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

    }
}

 
#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]);
 
    }
}
 

for(int i=0;i<n;i++)
{
if(!n%i)
i怎么能从0开始呢?n%i直接崩溃掉了啊