不知道這裡到底哪裡出錯了
請各位指點一下
#include <iostream>
#include <cmath>
using namespace std;
int primary(int n);
int j,n;
double m;
int main(){
while(cin>>n){
if(primary(n)==1)
cout<<"非質數"<<endl;
else
cout<<"質數"<<endl;
}
return 0;
}
int primary(int n){
m=sqrt(n);
for(j=2;j<=m;j++){
if(n==2)
break;
else if(n%j==0){
return 1;
break;
}
}
}
一直CE 我不懂CE的定義
因為每次CE錯誤解釋我都看不懂= =
請大家告訴我,謝謝
因為在cmath的定義裡
double sqrt(double);
float sqrt(float);
long double sqrt(long double);
而你卻給 sqrt(int)
這樣無法識別該用那個函式
所以強制型別轉換成double,告訴函式要用那個
當然你要強制轉換成float或是long double也是ok
因為在cmath的定義裡
double sqrt(double);
float sqrt(float);
long double sqrt(long double);
而你卻給 sqrt(int)
這樣無法識別該用那個函式
所以強制型別轉換成double,告訴函式要用那個
當然你要強制轉換成float或是long double也是ok