标签:
Time Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5008 Accepted Submission(s): 1421
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<cstdlib>
#include<algorithm>
#define LL long long
using namespace std;
LL n,m,num[15],ans;
LL gcd(LL a,LL b)
{
return b>0?gcd(b,a%b):a;
}
void dfs(int id,int flag,LL LCM)
{
LCM=num[id]/gcd(num[id],LCM)*LCM;
if(flag)
ans+=n/LCM;
else
ans-=n/LCM;
for(int i=id+1;i<=m;i++)
dfs(i,!flag,LCM);
}
int main()
{
while(scanf("%I64d%I64d",&n,&m)!=EOF)
{
n--;
ans=0;
for(int i=1;i<=m;i++)
{
scanf("%I64d",&num[i]);
if(num[i]==0)
i--,m--;
}
sort(num+1,num+1+m);
for(int i=1;i<=m;i++)
dfs(i,1,num[i]);
printf("%I64d\n",ans);
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/a972290869/p/4440749.html