a007.
判斷質數
| From: [120.107.174.102] |
發表日期
:
2011-09-15 23:48
本人使用C++,程式碼如下:
#include
using namespace std;
int main () {
int x;
while (cin >> x) {
if (x%2==0 && x!=1 && x!=2 && x!=3 && x!=5 && x!=7 && x!=11 || x%3==0 && x!=1 && x!=2 && x!=3 && x!=5 && x!=7 && x!=11 || x%5==0 && x!=1 && x!=2 && x!=3 && x!=5 && x!=7 && x!=11 || x%7==0 && x!=1 && x!=2 && x!=3 && x!=5 && x!=7 && x!=11 || x%11==0 && x!=1 && x!=2 && x!=3 && x!=5 && x!=7 && x!=11) {
cout << "非質數" << endl;
}
else {
cout << "質數" << endl;
}
}
} 為何在Line 10 就WA?
![驚訝](jscripts/tiny_mce/plugins/emotions/images/smiley-surprised.gif)
if中的條件太過混亂了,而且沒適當加入括號。
if ((x%2==0 && x!=1 && x!=2 && x!=3 && x!=5 && x!=7 && x!=11) ||
(x%3==0 && x!=1 && x!=2 && x!=3 && x!=5 && x!=7 && x!=11
) ||
(x%5==0 && x!=1 && x!=2 && x!=3 && x!=5 && x!=7 && x!=11
) ||
(x%7==0 && x!=1 && x!=2 && x!=3 && x!=5 && x!=7 && x!=11
) ||
(x%11==0 && x!=1 && x!=2 && x!=3 && x!=5 && x!=7 && x!=11
))
不過就算這樣改還是不行,如果當x等於1或169(例子很多),就掛掉了。還是請從質數的定義下手吧。