比赛 EYOI暨SBOI暑假快乐赛4th 评测结果 AAEEEEEEEE
题目名称 选题 最终得分 20
用户昵称 nick 运行时间 1.425 s
代码语言 C++ 内存使用 4.74 MiB
提交时间 2022-06-28 11:59:35
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const long long N = 1000000007;
int n,m,q,z[50010],t,s;
unsigned long long a[100] = {1,1},p,ss;
long long C(long long x,long long y){
    return a[x] / (a[y] * a[x-y]);
}
bool sou(int x){
    if(x == 1)return 0;
    for(int i = 2;i <= sqrt(x);i++){
        if(x % i == 0)return 0;
    }
    return 1;
}
int main(){
    freopen("mathproblem.in","r",stdin);
    freopen("mathproblem.out","w",stdout);
    for(int i = 2;i <= 100;i++)
        a[i]=a[i-1]*i;
    cin>>n>>m>>q;
    for(int i=1;i<=n;i++)
        if(n%i==0)
            p+=C(n,n/i);
    for(int i=1;i<=m;i++)
        if(sou(i)){
            t++;
            z[t]=i;
        }
    sort(z+1,z+1+t);
    for(int i=1;i<=q;i++){
        ss = 1;
        cin>>s;
        for(int j=1;j<=s;j++){
            int u;
            cin>>u;
            ss*=z[u];
        }
        cout<<p%ss<<endl;
    }
    
    return 0;
}