【07】判断被多个数整除

abc.txt文件中有一些整数,试编程实现循环输入文件中的整数,判断其能否被3,5,7整除。

三种信息有是和否可能,排列起来一共有8种情况,将这三种信息按二进制进行制作,即被3整除放在第三位,被5整除放在第二位,被7整除放在第一位,构成三位二进制数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<fstream>
using namespace std;
void main() {
ifstream in("abc.txt");
for(int n; in>>n; ) {
switch( (!(n%3)<<2) + (!(n%5)<<1) + !(n%7) ) {
case 0: cout<<n<<" "<<"none";break;
case 1: cout<<n<<" "<<"7";break;
case 2: cout<<n<<" "<<"5";break;
case 3: cout<<n<<" "<<"5,7";break;
case 4: cout<<n<<" "<<"3";break;
case 5: cout<<n<<" "<<"3,7";break;
case 6: cout<<n<<" "<<"3,5";break;
case 7: cout<<n<<" "<<"3,5,7";break;
}
cout<<endl;
}
}

欢迎关注我的其它发布渠道