#define DEBUG 0

#include <bits/stdc++.h>
using namespace std;

#if DEBUG
// basic debugging macros
int __i__,__j__;
#define printLine(l) for(__i__=0;__i__<l;__i__++){cout<<"-";}cout<<endl
#define printLine2(l,c) for(__i__=0;__i__<l;__i__++){cout<<c;}cout<<endl
#define printVar(n) cout<<#n<<": "<<n<<endl
#define printArr(a,l) cout<<#a<<": ";for(__i__=0;__i__<l;__i__++){cout<<a[__i__]<<" ";}cout<<endl
#define print2dArr(a,r,c) cout<<#a<<":\n";for(__i__=0;__i__<r;__i__++){for(__j__=0;__j__<c;__j__++){cout<<a[__i__][__j__]<<" ";}cout<<endl;}
#define print2dArr2(a,r,c,l) cout<<#a<<":\n";for(__i__=0;__i__<r;__i__++){for(__j__=0;__j__<c;__j__++){cout<<setw(l)<<setfill(' ')<<a[__i__][__j__]<<" ";}cout<<endl;}

// advanced debugging class
// debug 1,2,'A',"test";
class _Debug {
    public:
        template<typename T>
        _Debug& operator,(T val) {
            cout << val << endl;
            return *this;
        }
};
#define debug _Debug(),
#else
#define printLine(l)
#define printLine2(l,c)
#define printVar(n)
#define printArr(a,l)
#define print2dArr(a,r,c)
#define print2dArr2(a,r,c,l)
#define debug
#endif

// define
#define MAX_VAL 999999999
#define MAX_VAL_2 999999999999999999LL
#define EPS 1e-6
#define mp make_pair
#define pb push_back

// typedef
typedef unsigned int UI;
typedef long long int LLI;
typedef unsigned long long int ULLI;
typedef unsigned short int US;
typedef pair<int,int> pii;
typedef pair<LLI,LLI> plli;
typedef vector<int> vi;
typedef vector<LLI> vlli;
typedef vector<pii> vpii;
typedef vector<plli> vplli;

// ---------- END OF TEMPLATE ----------

vplli dists;
priority_queue<plli> H;
unordered_map<LLI,LLI> dist;
int main() {
    int i;
    int T,A,B,C,D;
    LLI N;
    scanf("%d",&T);
    while (T--) {
        scanf("%lld %d %d %d %d",&N,&A,&B,&C,&D);

        LLI ans = (((double) N*D) > 1e12) ? 1e12:N*D;
        for (i = -4; i <= 4; i++) {
            if (N+i >= 0) dist[N+i] = (LLI) D*abs(i),H.push(mp(-dist[N+i],N+i));
        }
        while (!H.empty()) {
            LLI u = H.top().second;
            LLI d = -H.top().first;
            H.pop();

            if (d > dist[u]) continue;
            else if (d > ans) {
                printf("%lld\n",ans);
                break;
            }
            else if (u == 0) {
                printf("%lld\n",min(d,ans));
                break;
            }
            if ((u % 2) == 0) {
                LLI uu = u/2,dd = d+A;
                if (((double) uu*D+dd) < 1e12) ans = min(ans,dd+uu*D);
                for (i = -4; i <= 4; i++) {
                    if (uu+i >= 0) {
                        if (!dist.count(uu+i) || ((LLI) D*abs(i)+dd < dist[uu+i])) {
                            dist[uu+i] = (LLI) D*abs(i)+dd;
                            H.push(mp(-dist[uu+i],uu+i));
                        }
                    }
                }
            }
            if ((u % 3) == 0) {
                LLI uu = u/3,dd = d+B;
                if (((double) uu*D+dd) < 1e12) ans = min(ans,dd+uu*D);
                for (i = -4; i <= 4; i++) {
                    if (uu+i >= 0) {
                        if (!dist.count(uu+i) || ((LLI) D*abs(i)+dd < dist[uu+i])) {
                            dist[uu+i] = (LLI) D*abs(i)+dd;
                            H.push(mp(-dist[uu+i],uu+i));
                        }
                    }
                }
            }
            if ((u % 5) == 0) {
                LLI uu = u/5,dd = d+C;
                if (((double) uu*D+dd) < 1e12) ans = min(ans,dd+uu*D);
                for (i = -4; i <= 4; i++) {
                    if (uu+i >= 0) {
                        if (!dist.count(uu+i) || ((LLI) D*abs(i)+dd < dist[uu+i])) {
                            dist[uu+i] = (LLI) D*abs(i)+dd;
                            H.push(mp(-dist[uu+i],uu+i));
                        }
                    }
                }
            }
        }
        while (!H.empty()) H.pop();
        dist.clear();
    }

    return 0;
}



Measured memory_bytes: 7128