比赛 EYOI暨SBOI暑假快乐赛4th 评测结果 AAEEEEEEEE
题目名称 选题 最终得分 20
用户昵称 00000 运行时间 1.731 s
代码语言 C++ 内存使用 4.77 MiB
提交时间 2022-06-28 11:50:39
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll m,n,q,p,k[10005],kk=0,s[10005],h[10005],hh=0,a,b,c=1;
int main(){
freopen("mathproblem.in","r",stdin);
freopen("mathproblem.out","w",stdout);
cin>>n>>m>>q;
for(int w=1;w<=sqrt(n);w++)
{
//    if(w==1) cout<<n%w;
    if(n%w==0)
    {
//        cout<<w<<endl;
        k[++kk]=w;
        if(w*w!=n)
        k[++kk]=n/w;
    }
}
//for(int w=1;w<=kk;w++)
//{
//    cout<<k[w]<<endl;
//}
ll x=0,y=1,z=1;
for(int w=1;w<=kk;w++)
{
    y=1,z=1;
    for(int e=n;e>n-k[w];e--)
    {
        z=z*e;
    }
    for(int e=1;e<=k[w];e++) y=y*e;
    x=x+z/y;
}
//cout<<x<<endl;
for(int w=2;w<=m;w++)
{
    if(s[w]==0)
    {
        h[++hh]=w;
        for(int e=2;e*w<=m;e++)
        {
            s[e*w]=1;
        }
    } 
} 
//for(int w=1;w<=hh;w++)
//{
//    cout<<h[w]<<endl;
//}
for(int e=1;e<=q;e++)
{
    cin>>a;
    c=1;
    for(int w=1;w<=a;w++)
    {
    cin>>b;
    c=c*h[b];
    }
    cout<<x%c<<endl;
//    cout<<c<<endl;
}

return 0;
}