×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
#9686: 會發生 記憶體區段錯誤! Dev-C++就可執行 問題出在哪
s56565566123
(akali)
學校 : 國立虎尾科技大學
編號 : 47695
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [61.70.196.187]
最後登入時間 :
2023-09-06 01:01:55
a007.
判斷質數
| From: [218.173.100.52] | 發表日期 : 2015-03-02 22:20
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main(void){
int num;
bool A[50000];
int B[5000];
for(int i=0;i<50000;i++){
A[i]=false;
}
B[1]=2;
B[2]=3;
B[3]=5;
int a=6;
bool ok=true;
int i=3;
while(i<5000){
ok=true;
for(int j=1;j<=i;j++){
if(a % B[j]==0){
ok=false;
break;
}
}
if(ok==true){
B[i+1]=a;
i++;
}
a++;
}
for(int j=1;j<5000;j++){
A[B[j]]=true;
}
while(scanf("%d",&num)!=EOF){
if(A[num]==true){
printf("質數\n");
}else{
printf("非質數\n");
}
}
return 0;
}
#9690: Re:會發生 記憶體區段錯誤! Dev-C++就可執行 問題出在哪
m80126colin
(許胖)
學校 : 新北市立板橋高級中學
編號 : 2331
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [114.24.77.220]
最後登入時間 :
2024-11-06 23:38:10
a007.
判斷質數
| From: [58.115.94.7] | 發表日期 : 2015-03-04 21:48
#include
#include
#include
using namespace std;
int main(void){
int num;
bool A[50000];
int B[5000];
for(int i=0;i<50000;i++){
A[i]=false;
}
B[1]=2;
B[2]=3;
B[3]=5;
int a=6;
bool ok=true;
int i=3;
while(i<5000){
ok=true;
for(int j=1;j<=i;j++){
if(a % B[j]==0){
ok=false;
break;
}
}
if(ok==true){
B[i+1]=a;
i++;
}
a++;
}
for(int j=1;j<5000;j++){
A[B[j]]=true;
}
while(scanf("%d",&num)!=EOF){
if(A[num]==true){
printf("質數\n");
}else{
printf("非質數\n");
}
}
return 0;
}
為何是 5000 和 50000?
試試看 2100000000
#9695: Re:會發生 記憶體區段錯誤! Dev-C++就可執行 問題出在哪
a12345678665
(marktohark)
學校 : 國立虎尾科技大學
編號 : 48059
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [49.213.194.197]
最後登入時間 :
2019-07-11 10:50:36
a007.
判斷質數
| From: [123.110.148.74] | 發表日期 : 2015-03-05 23:48
#include
#include
#include
using namespace std;
int main(void){
int num;
bool A[50000];
int B[5000];
for(int i=0;i<50000;i++){
A[i]=false;
}
B[1]=2;
B[2]=3;
B[3]=5;
int a=6;
bool ok=true;
int i=3;
while(i<5000){
ok=true;
for(int j=1;j<=i;j++){
if(a % B[j]==0){
ok=false;
break;
}
}
if(ok==true){
B[i+1]=a;
i++;
}
a++;
}
for(int j=1;j<5000;j++){
A[B[j]]=true;
}
while(scanf("%d",&num)!=EOF){
if(A[num]==true){
printf("質數\n");
}else{
printf("非質數\n");
}
}
return 0;
}
我測試過了
在這網站上的for(int i=0 ;i<??;i++)
在這網站上是會錯誤的
請改成
int i;
for(i=0;i<??;i++)
ZeroJudge Forum