知识点
set集合是c++ stl库中自带的一个容器,set具有以下两个特点:
- set中的元素都是排好序的
- set集合中没有重复的元素
具体用法参见:C++中set用法详解
#includeusing namespace std; typedef long long LL; const LL MAX=59084709587505;//本题中的数 int main() { int a[3]={3,5,7}; LL k=1; set s;//set集合排序+去重,set s定义一个集合s while(1){ for(int i=0;i<3;i++){ LL kk=k*a[i]; if(kk<=MAX) s.insert(kk);//Set中再添加任何数都比原数小时,将kk插入s中 } k=*(s.upper_bound(k));//找出s中大于k的数赋给k(返回迭代器,键值指向大于k的第一个元素) if(k>=MAX) break;//Set中再添加任何数都比原数大的时候循环退出,输出Set中元素的个数即为所求。 } cout<



