757B Bash's Big Day

来源:互联网 发布:淘宝开店审核期去哪查 编辑:程序博客网 时间:2024/06/16 23:37

题目链接:

http://codeforces.com/contest/757/problem/B

题解:

大致题意:
给你n个数,问这些数中互相gcd的值不为的1的有多少(要取最大值)
很好的一个思维题,自己是用暴力打表的方法来做的。

代码:

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define met(a,b) memset(a,b,sizeof(a))const int maxn = 1e5;#define inf 0x3f3f3f3fint visited[maxn];int main(){    int n;    while(cin>>n)    {        met(visited,0);        for(int i=0;i<n;i++)        {            int num;            cin>>num;            visited[num]++;        }        int ans=1;        for(int i=2;i<maxn;i++)        {            int temp=0;            for(int j=i;j<=maxn;j+=i)                temp+=visited[j];            ans=max(ans,temp);        }        cout<<ans<<endl;    }}
0 0