DDW17 @ 2023-07-16 20:54:59
#include<iostream>
using namespace std;
int main(){
int a;
cin>>a;
for(int i=2;i<=100;i++){
if(a%i==0 & a!=i){
cout<<"合数";
break;
}
if(i == 100){
cout<<"质数";
}
if(a%2==0&&a%3==0&&a%5==0&&a%7==0&&a%11==0&&a%13==0&&a%17==0&&a%19==0&&a%23==0&&a%29==0){
cout<<"合数";
} else{
cout<<"质数";
}
return 0 ;
}
}
by DDW17 @ 2023-07-16 20:57:16
file:///C:/
by DDW17 @ 2023-07-16 20:59:32
但是我输入无论12还是16都是合数,我输入15无论如何都是质数
by cff_0102 @ 2023-07-16 21:00:09
首先,你的第一个判断条件是 a%i==0 & a!=i
,这相当于 a%i==0!=i
。
应该将 &
改为 &&
。
其次,你的第二个判断是 a%2==0&&a%3==0&&a%5==0&&a%7==0&&a%11==0&&a%13==0&&a%17==0&&a%19==0&&a%23==0&&a%29==0
。
意思是,同时能被2,3,5,7,11,...,29整除的数
但实际上应该是能被2或3或5或7整除的数
所以把 &&
改为 ||
。
by Terrible @ 2023-07-16 21:05:53
建议放到题目总版。
by a1co0av5ce5az1cz0ap_ @ 2023-07-16 21:06:57
@cff_0102 return在循环内部!
by cff_0102 @ 2023-07-16 21:08:22
@ACaCaca_ 牛牛牛
by DDW17 @ 2023-07-18 20:45:40
@cff_0102 收到,谢谢大佬的解答,我会更加努力的(
by DDW17 @ 2023-07-18 20:47:24
@ACaCaca_ 谢谢大佬(