#36729: 測資2輸出0行


40925013@gm.nfu.edu.tw (杰儒楊)

學校 : 不指定學校
編號 : 238706
來源 : [42.72.158.9]
最後登入時間 :
2023-09-25 15:59:21
a010. 因數分解 | From: [111.82.227.32] | 發表日期 : 2023-08-04 16:49

#include <stdio.h>
#include <stdlib.h>
int main(){
long long int a;
while(scanf("%lld",&a)!=EOF){
if(a<1 || a>100000000){
continue;
}
 
long long int b=2;
long long int *arr = (long long int *)malloc((a + 1) * sizeof(long long int));
        if (arr == NULL) {
            
            continue;
        }
for(long long int i=0;i<=a;i++){
arr[i]=0;
}
 
while(a>1){
if(a%b==0){
arr[b]++;
a/=b;
}else{
b++;
}
}
int flag=1;
for(long long int i=2;i<=b;i++){
if(arr[i]>0){
if(flag==0){
printf(" * ");
}
if(arr[i]>1){
printf("%lld^%lld",i,arr[i]);
flag=0;
}else if(arr[i]==1){
printf("%d",i);
flag=0;}
}
}
free(arr);
printf("\n"); }
}能否幫我看看哪裡有問題嗎?
 
 
#36734: Re: 測資2輸出0行


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
a010. 因數分解 | From: [118.160.198.38] | 發表日期 : 2023-08-04 22:35

 
long long int *arr = (long long int *)malloc((a + 1) * sizeof(long long int));
 


似乎是數字太大時,malloc會失敗

 
ZeroJudge Forum