#1290: 為啥會CE??我在DEV C++執行沒有錯ㄟ


cutebee (呆呆)


#include<iostream>
#include<math.h>
using namespace std;

int main(){
    int a, b, c, d;
    while(scanf("%d", &a)!=EOF){
        b=sqrt(a);
        if(a==2||a==3){
        cout<<"質數"<<endl;
        }
        else{
        for(c=2;c<=b;c++){
            d=a%c;
            if(d==0){
                cout<<"非質數"<<endl;
                break;
            }
            else if(b==c){
                cout<<"質數"<<endl;
            }
        }
        }
    }
return 0;
}

希望大家幫忙解答~

#1300: Re:為啥會CE??我在DEV C++執行沒有錯ㄟ


cs8425 (cs8425)


#include
#include
using namespace std;

int main(){
int a, b, c, d;
while(scanf("%d", &a)!=EOF){
b=sqrt(a);
if(a==2||a==3){
cout<<"質數"<
}
else{
for(c=2;c<=b;c++){
d=a%c;
if(d==0){
cout<<"非質數"<
break;
}
else if(b==c){
cout<<"質數"<
}
}
}
}
return 0;
}

希望大家幫忙解答~ 

 

   b=sqrt(a); 改  b=(int) sqrt( (double) a); 應該就可以了

 sqrt()要用double的類型.(gcc 3.4 很嚴阿,比4.2嚴...)