题解:用一个map数组,标记所有的天数看有没有被选中,如果是周五和周六用 day % 7 != 0 && day % 7 != 6 来判定。
#include <cstdio>
#include <cstring>
using namespace std;
const int N = 3655;
int main() {
int t, n, p, d, flag;
int map[N];
scanf("%d", &t);
while (t--) {
flag = 0;
memset(map, 0, sizeof(map));
scanf("%d", &n);
scanf("%d", &p);
while (p--) {
scanf("%d", &d);
for (int i = 1; i <= n; i++) {
if (i % d == 0) {
if (i % 7 != 6 && i % 7 != 0 && map[i] == 0) {
flag++;
map[i] = 1;
// printf("%d\n", i);
}
}
}
}
printf("%d\n", flag);
}
return 0;
}