function Main(input) {
    input = input.split("\n");
    var n = parseInt(input[0], 10);
    var num = input[1].split(' ');
	var num2 = new Array(n);
	var numS = new Array(n);
	var max = 0;
	for(var i=0; i<n; i++){
    	num[i] = parseInt(num[i], 10);
    	num2[i] = num[i];
    	if(max < num[i]){
        	max = num[i]
        }
    }
	var numSmax = new Array(n);
	for(var i=0; i<n; i++){
    	numS[i] = new Array(max+1);
    	for(var j=0; j<max+1; j++){
        	numS[i][j] = 0;
    		numSmax[j] = 0;
        }
    }
	var sosu = new Array(max+1);
	var memo = new Array(max+1);
	for(var i=0; i<max+1; i++){
    	sosu[i] = i;
    	memo[i] = i;
    }
	for(var i=2; i<max+1; i++){
    	if(sosu[i] != 0){
        	memo[i] = i;
			for(var j=i*i; j<max+1; j+=i){
        		sosu[j] = 0;
            	memo[j] = i;
        	}
        }
    }
	for(var i=0; i<n; i++){
    	for(var j=0; j>=0; j++){
        	numS[i][memo[num[i]]]++; 
        	num[i] /= memo[num[i]];
        	if(num[i] == 1){
            	break;
            }
        }
    }
	for(var i=0; i<n; i++){
    	for(var j=2; j<max+1; j++){
        	if(numS[i][j] > numSmax[j]){
            	numSmax[j] = numS[i][j];
            }
        }
    }
	var suu = 1;
    for(var j=2; j<max+1; j++){
		suu *= Math.pow(j, numSmax[j]);
	}
	var anser = 0;
	for(var i=0; i<n; i++){
		anser += suu/num2[i];
		if(anser >= Math.pow(10, 9)+7){
			anser = anser % (Math.pow(10, 9)+7);
		}
    }
	console.log(anser);
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));