#10855: 因式分解 不知道為什麼會 逾時


gts868 (max)

學校 : 國立中山大學
編號 : 57139
來源 : [140.117.75.8]
最後登入時間 :
2018-03-09 11:22:33
a010. 因數分解 | From: [140.117.194.145] | 發表日期 : 2016-04-13 16:58

#include <stdio.h>


int main(void){

int num ;
int add;
int ori;
int exp;
int a =0;


while(scanf("%d",&num)!=0){
a=0;
for(add = 2 ; num > 1; add++){
exp = 0 ;

while (num % add == 0 ){
a++;
if(a>=2){
printf(" * ");
}
while(num % add == 0){
num = num /add ;
exp++;
}
if (exp>=2){
printf("%d^%d",add,exp);
}
else if (exp==1){
printf("%d",add) ;
}

}
}
printf("\n") ;
}



}

 

因式分解 不知道為什麼會 逾時

 

我在自己devc++跑出來的答案都是對阿

 
#11103: Re:因式分解 不知道為什麼會 逾時


Layaccc (Layaccc)

學校 : 不指定學校
編號 : 58298
來源 : [60.250.2.2]
最後登入時間 :
2016-07-18 17:56:10
a010. 因數分解 | From: [60.250.126.211] | 發表日期 : 2016-06-28 11:47

#include


int main(void){

int num ;
int add;
int ori;
int exp;
int a =0;


while(scanf("%d",&num)!=0){
a=0;
for(add = 2 ; num > 1; add++){
exp = 0 ;

while (num % add == 0 ){
a++;
if(a>=2){
printf(" * ");
}
while(num % add == 0){
num = num /add ;
exp++;
}
if (exp>=2){
printf("%d^%d",add,exp);
}
else if (exp==1){
printf("%d",add) ;
}

}
}
printf("\n") ;
}



}

 

因式分解 不知道為什麼會 逾時

 

我在自己devc++跑出來的答案都是對阿


while(scanf("%d",&num)!=0)要改成

while(scanf("%d",&num)!=EOF)

 

原本的寫法用手打輸入的確是可以,

但是你的程式上傳到server去驗證時,

我猜sever端是直接餵一整個檔案進去,所以scanf這個function要用EOF當作輸入終止的條件。

 
ZeroJudge Forum