public static long kthPrimeNumber(int k) {
        long v3=3,v5=5,v7=7;
        int i3=0,i5=0,i7=0;
        long[]t=new long[k];
        for (int i=0;i<k;++i) {
            long v=Math.min(Math.min(v3,v5),v7);
            t[i]=v;
             if (v==v3)
                 v3=t[i3++]*3;
             if (v==v5)
                 v5=t[i5++]*5;
             if (v==v7)
                 v7=t[i7++]*7;
        }
        return t[k-1];
    }