Description
Submission
class Solution { int Map[200001]; public: int countDifferentSubsequenceGCDs(vector<int>& nums) { for(int x: nums) { for(int i = 1; i <= sqrt(x); ++i) { if(x % i == 0) { int y = i; if(Map[y] == 0) Map[y] = x; else Map[y] = gcd(Map[y], x); y = x / i; if(Map[y] == 0) Map[y] = x; else Map[y] = gcd(Map[y], x); } } } int ret = 0; for(int i = 1; i < 200001; ++i) { if(Map[i] == i) ret++; } return ret; } };