51nod 1179 最大的最大公約數

2021-08-11 04:43:12 字數 1162 閱讀 7960

1179 最大的最大公約數

sgu基準時間限制:1 秒 空間限制:131072 kb 分值: 40 

難度:4級演算法題

給出n個正整數,找出n個數兩兩之間最大公約數的最大值。例如:n = 4,4個數為:9 15 25 16,兩兩之間最大公約數的最大值是15同25的最大公約數5。

input

第1行:乙個數n,表示輸入正整數的數量。(2 <= n <= 50000)

第2 - n + 1行:每行1個數,對應輸入的正整數.(1 <= s[i] <= 1000000)

output

輸出兩兩之間最大公約數的最大值。
input示例

4915

2516

output示例

5
題意:給你n個數字,任意兩個數字都有乙個最大公約數,那麼最大的公約數為多少

思路1:每個數字都能以sqrt(a)的複雜度列舉出a的所有因子。統計n個數字的所有因子出現的個數。然後從大到小列舉因子,輸出最大的出現兩次以上的那個因子。

思路2:桶排序出現的n個數字。統計出最大值,然後開始從大到小列舉這個答案,對於每個可能的答案,只需要統計這n個數字中有多少個是這個答案的倍數。畫素數篩法一樣,列舉答案的倍數,如果有兩個以上,那麼這個數就是答案了。

思路1的**:

#include #include #include #include #include #include #include #include#define ll long long

#define n 51000

using namespace std;

int v[1100000];

int main()}}

思路2**:

#include #include #include #include #include #include #include #include#define ll long long

#define n 1001000

using namespace std;

int v[n];

int main()

for(int i=maxx;i>=1;i--)}}

}

51nod1179最大的最大公約數

題目大意 給出n個正整數,找出n個數兩兩之間最大公約數的最大值。例如 n 4,4個數為 9 15 25 16,兩兩之間最大公約數的最大值是15同25的最大公約數5。input 第1行 乙個數n,表示輸入正整數的數量。2 n 50000 第2 n 1行 每行1個數,對應輸入的正整數.1 s i 100...

51nod 1179 最大的最大公約數

給出n個正整數,找出n個數兩兩之間最大公約數的最大值。例如 n 4,4個數為 9 15 25 16,兩兩之間最大公約數的最大值是15同25的最大公約數5。input 第1行 乙個數n,表示輸入正整數的數量。2 n 50000 第2 n 1行 每行1個數,對應輸入的正整數.1 s i 1000000 ...

51nod 1179 最大的最大公約數

原題鏈結 1179 最大的最大公約數 sgu基準時間限制 1 秒 空間限制 131072 kb 分值 40 難度 4級演算法題 給出n個正整數,找出n個數兩兩之間最大公約數的最大值。例如 n 4,4個數為 9 15 25 16,兩兩之間最大公約數的最大值是15同25的最大公約數5。input 第1行...