比赛 |
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;
}