#3546: RE還是RE


oiuyjoe (oiuyjoe)

學校 : 國立臺灣海洋大學
編號 : 11278
來源 : [140.121.215.49]
最後登入時間 :
2012-09-30 21:50:26
a010. 因數分解 | From: [140.121.213.63] | 發表日期 : 2010-03-18 16:08

幫幫我!

不管怎麼做還是RE!

#include<stdio.h>

int main()

 unsigned long int a, i;

 while(scanf("%u",&a)!=EOF)
 {  int j=0,x=0;
   int b[10000]={0};
  for( i=2;i<=a;i++)
  {
   if(a%i==0)
   { b[i]=b[i]+1;
    a=a/i;
    i=1;
   
    if(a==1){
     
     break;
    }
   }
  }
  while(j<10000){
    if(b[j]>0)
    x++;
    j++;
  }

  x=x-1;
  
  j=0;
  while(j<10000)
  {
   if(b[j]==1)
   {
    printf("%d",j);
    if(x>0)
    {
     printf(" * ");
     x--;
    }
   }
   else if(b[j]>1)
   {
    printf("%d^%d",j,b[j]);

    if(x>0)
    {
     printf(" * ");
     x--;
    }
  
   }
   j++;
  }
  x=0;

 printf("\n");
 
 
 }
 return 0;
}

 
#3547: Re:RE還是RE


linishan (L)

學校 : 國立交通大學
編號 : 1090
來源 : [104.132.150.102]
最後登入時間 :
2019-05-10 19:57:54
a010. 因數分解 | From: [125.228.221.81] | 發表日期 : 2010-03-18 18:54

幫幫我!

不管怎麼做還是RE!

#include

int main()

 unsigned long int a, i;

 while(scanf("%u",&a)!=EOF)
 {  int j=0,x=0;
   int b[10000]={0};
  for( i=2;i<=a;i++)
  {
   if(a%i==0)
   { b[i]=b[i]+1;
    a=a/i;
    i=1;
   
    if(a==1){
     
     break;
    }
   }
  }
  while(j<10000){
    if(b[j]>0)
    x++;
    j++;
  }

  x=x-1;
  
  j=0;
  while(j<10000)
  {
   if(b[j]==1)
   {
    printf("%d",j);
    if(x>0)
    {
     printf(" * ");
     x--;
    }
   }
   else if(b[j]>1)
   {
    printf("%d^%d",j,b[j]);

    if(x>0)
    {
     printf(" * ");
     x--;
    }
  
   }
   j++;
  }
  x=0;

 printf("\n");
 
 
 }
 return 0;
}

程式碼太凌亂...

我看不太懂你寫的...

 

陣列開大點 ?

另外陣列開太大 須宣告全域..

 

100000用不到unsigned int

32位元平台 long int=int (2147483647)

 
ZeroJudge Forum