ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

5725. 序列中不同最大公约数的数目

2021-04-04 16:04:17  阅读:135  来源: 互联网

标签:gcd nums int 5725 vis 最大公约数 倍数 序列


题目链接:https://leetcode-cn.com/problems/number-of-different-subsequences-gcds/

思路: 枚举gcd i  去找所有出现在数组中的i的倍数  只有数组中所有i的倍数的gcd 为i时

才存在一个序列的gcd为 i , 因为如果某个序列中的gcd已经为i了 那么再和i 的倍数取一遍 gcd

答案还是i

 1 class Solution {
 2     int vis[200010];
 3 public:
 4     int countDifferentSubsequenceGCDs(vector<int>& nums) {
 5         for(auto &v:nums) vis[v]=1;
 6         int ans=0;
 7         for(int i=1;i<=200000;i++)
 8         {
 9             int f=0;
10             for(int j=i;j<=200000;j+=i)
11             {
12                 if(vis[j])
13                 {
14                     if(!f) f=j;
15                     else
16                     {
17                         f=__gcd(f,j);
18                     }
19                 }
20             }
21             if(f==i) ans++;
22         }
23         return ans;
24     }
25 };
View Code

 

标签:gcd,nums,int,5725,vis,最大公约数,倍数,序列
来源: https://www.cnblogs.com/winfor/p/14616310.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有