爲什麼我這樣會會一直TAL呢?
討論我又看不懂= =
大大救一下吧~
#include<iostream>
using namespace std;
int main()
{
int n=0;
int i=0;
bool s=0;
while(cin>>n){
for(i=2;i<n^(1/2);i++){
if(n%i==0)
s=1;
if(s==1)
break;
}
switch(s){
case 1:
cout << "非質數" << endl;
break;
default:
cout << "質數" << endl;
break;
}
}
return 0;
}
爲什麼我這樣會會一直TAL呢?
討論我又看不懂= =
大大救一下吧~
#include<iostream>
using namespace std;
int main()
{
int n=0;
int i=0;
bool s=0;
while(cin>>n){
for(i=2;i<n^(1/2);i++){
if(n%i==0)
s=1;
if(s==1)
break;
}
switch(s){
case 1:
cout << "非質數" << endl;
break;
default:
cout << "質數" << endl;
break;
}
}
return 0;
}
算 n 的開根號要用 sqrt((double) n) 或是 pow((double)n, 0.5)
^ 這是VB的用法,在C語言裡是代表Xor
記得 #include <math.h>
另外應該是用 i <= sqrt((double) n);
不然你 n = 9,程式會以為 n 是質數
爲什麼我這樣會會一直TAL呢?
討論我又看不懂= =
大大救一下吧~
#include<iostream>using namespace std;int main(){ int n=0; int i=0; bool s=0; while(cin>>n){ for(i=2;i<n^(1/2);i++){ if(n%i==0) s=1; if(s==1) break; } switch(s){ case 1: cout << "非質數" << endl; break; default: cout << "質數" << endl; break; } } return 0; }
算 n 的開根號要用 sqrt((double) n) 或是 pow((double)n, 0.5)
^ 這是VB的用法,在C語言裡是代表Xor
記得 #include <math.h>
另外應該是用 i <= sqrt((double) n);
不然你 n = 9,程式會以為 n 是質數
|| 原來如此啊~~
謝謝囉~