51 Nod 1179 最大的最大公约数(筛法)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51 Nod 1179 最大的最大公约数(筛法)相关的知识,希望对你有一定的参考价值。
题目链接:点我点我
题意:就是题目的名字
题解:从大往小筛一下就可以了,时间复杂度O( n* sqrt(max{num[i]}) )。
1 #include <cstring> 2 #include <iostream> 3 #include <algorithm> 4 using namespace std; 5 6 const int N=1000000+10; 7 int num[N]; 8 9 int main(){ 10 memset(num,0,sizeof(num)); 11 int n,tmp,cnt,M_num=0; 12 cin>>n; 13 14 for(int i=1;i<=n;i++){ 15 cin>>tmp; 16 num[tmp]=1; 17 M_num=max(M_num,tmp); 18 } 19 for(int i=M_num;i>=1;i--){ 20 cnt=0; 21 for(int j=i;j<=M_num;j+=i){ 22 if(num[j]==1) cnt++; 23 if(cnt==2) {cout<<i<<endl;return 0;} 24 } 25 } 26 return 0; 27 }
以上是关于51 Nod 1179 最大的最大公约数(筛法)的主要内容,如果未能解决你的问题,请参考以下文章