#8480: 這個bug要怎麼解決


dinghaipi (丁海皮)

學校 : 國立清華大學
編號 : 32994
來源 : [140.114.201.68]
最後登入時間 :
2013-12-27 13:10:38
a007. 判斷質數 | From: [140.114.201.68] | 發表日期 : 2013-12-27 12:45

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stdlib.h>

int main(){
bool prime[2147483647];
int a;
int i;
int j;
int k;
for (i=0; i<2147483647; i++)
prime[i] = true;
prime[0] = false;
prime[1] = false;

for(j=2;j<=2147483647;j++)
{
 if(prime[j])
   {
     for (k=j+j; k<2147483647; k+=j)
                prime[k] = false;
   }
}
while((scanf("%d",&a))!=EOF)
{
 if(prime[a]==true)
  {
    printf("質數\n");
  }
 else
  {
   printf("非質數\n");
  }
  a= 0;
}
return 0;
}
=======以上是code=========

跑出結果 CE

total size of local objects too large
 請問有甚麼解決方法嗎?
 

 

 
#8482: Re:這個bug要怎麼解決


kkmomo (kkmomo)

學校 : 不指定學校
編號 : 29247
來源 : [223.137.94.20]
最後登入時間 :
2024-06-28 12:05:12
a007. 判斷質數 | From: [118.165.146.141] | 發表日期 : 2013-12-28 10:58

bool prime[2147483647]; 

 

超過stack上限,請改用動態記憶體配置(存在heap)
 
ZeroJudge Forum