首先丑数都是只有质因子235,刚开始没明白这个题目,后来想到所有的数都可以拆成质数之积(毕竟质数的定义就是只有1和自身是因数,也就是不能再拆,想要拆到最后只有235,那形成的时候也应该只有235),那想要235就要由这三个数不停的互相累乘就可以了

class Solution {
public:
    int GetUglyNumber_Solution(int index) {
        if(index <= 0)return 0;
        int p2=0,p3=0,p5=0;//初始化三个指向三个潜在成为最小丑数的位置
        vector<int> result(index,0);
        result[0] = 1;//
        for(int i=1; i < index; i++){
            result[i] = min(result[p2]*2,min(result[p3]*3, result[p5]*5));
            if(result[i] == result[p2]*2)p2++;//为了防止重复需要三个if都能够走到
            if(result[i] == result[p3]*3)p3++;//为了防止重复需要三个if都能够走到
            if(result[i] == result[p5]*5)p5++;//为了防止重复需要三个if都能够走到
        }
        return result[index-1];
    }
};