1002
typedef long long LL;
const int maxn = 100000 ;
vector<int> d[maxn+8] ;
vector<int> ::iterator it ;
int a[maxn] ;
int f[maxn] ;
int b[maxn] ;
int g[maxn] ;
int c[maxn] ;
int main(){
int i , j ;
for(i = 1 ; i <= maxn ; i++)
for(j = i ; j <= maxn ; j += i) d[j].push_back(i) ;
int n ;
while(cin>>n && n){
for(i = 1 ; i <= n ; i++) scanf("%d" , &a[i]) ;
for(i = 1 ; i <= maxn ; i++) f[i] = -1 ;
for(i = 1 ; i <= n ; i++){
if(f[a[i]] == -1) b[i] = a[i] ;
else b[i] = a[f[a[i]]] ;
for(it = d[a[i]].begin() ; it != d[a[i]].end() ; it++)
f[*it] = max(f[*it] , i) ;
}
for(i = 1 ; i <= maxn ; i++) g[i] = maxn + 10 ;
for(i = n ; i >= 1 ; i--){
if(g[a[i]] == maxn + 10) c[i] = a[i] ;
else c[i] = a[g[a[i]]] ;
for(it = d[a[i]].begin() ; it != d[a[i]].end() ; it++)
g[*it] = min(g[*it] , i) ;
}
LL ans = 0 ;
for(i = 1 ; i <= n ; i++){
// cout<<b[i] << " "<<c[i]<<endl ;
ans += (LL)b[i] * (LL) c[i] ;
}
printf("%I64d\n" , ans) ;
}
return 0 ;
}
1006
const int maxn = 1008 ;
int n , k ;
struct Mat{
int x[10][10] ;
Mat(){
memset(x , 0 , sizeof(x)) ;
}
Mat(int){
memset(x, 0 , sizeof(x)) ;
for(int i = 1 ; i <= k ; i++) x[i][i] = 1 ;
}
friend Mat operator * (const Mat &a , const Mat &b) ;
friend Mat operator ^ (Mat a , int b) ;
};
Mat operator * (const Mat &a , const Mat &b){
Mat s ;
int i , j , d ;
for(i = 1 ; i <= k ; i++){
for(j = 1 ; j <= k ; j++){
if(a.x[i][j] == 0) continue ;
for(d = 1 ; d <= k ; d++){
s.x[i][d] += a.x[i][j] * b.x[j][d] ;
while(s.x[i][d] >= 6) s.x[i][d] -= 6 ;
}
}
}
return s ;
}
Mat operator ^ (Mat a , int b){
Mat s(1);
int i , j , d ;
for(; b ; b >>= 1){
if(b & 1) s = s * a ;
a = a * a ;
}
return s ;
}
int a[maxn][maxn] , b[maxn][maxn] ;
int ac[maxn][maxn] , acb[maxn][maxn] ;
int main(){
int i , j , d ;
while(scanf("%d%d" ,&n,&k)){
if(n==0 && k==0) break ;
for(i = 1 ; i <= n ; i++)
for(j = 1 ; j <= k ; j++) scanf("%d" ,&a[i][j]) ;
for(i = 1 ; i <= k ; i++)
for(j = 1 ; j <= n ; j++) scanf("%d" ,&b[i][j]) ;
Mat c ;
for(i = 1 ; i <= k ; i++){
for(j = 1 ; j <= n ; j++){
if(b[i][j] == 0) continue ;
for(d = 1 ; d <= k ; d++){
c.x[i][d] += b[i][j] * a[j][d] ;
while(c.x[i][d] >= 6) c.x[i][d] -= 6 ;
}
}
}
c = c ^ (n*n-1) ;
memset(ac , 0 , sizeof(ac)) ;
for(i = 1 ; i <= n ; i++){
for(j = 1 ; j <= k ; j++){
if(a[i][j] == 0) continue ;
for(d = 1 ; d <= k ; d++){
ac[i][d] += a[i][j] * c.x[j][d] ;
while(ac[i][d] >= 6) ac[i][d] -= 6 ;
}
}
}
memset(acb , 0 , sizeof(acb)) ;
for(i = 1 ; i <= n ; i++){
for(j = 1 ; j <= k ; j++){
if(ac[i][j] == 0) continue ;
for(d = 1 ; d <= n ; d++){
acb[i][d] += ac[i][j] * b[j][d] ;
while(acb[i][d] >= 6) acb[i][d] -= 6 ;
}
}
}
int sum = 0 ;
for(i = 1 ; i <= n ; i++)
for(j = 1 ; j <= n ; j++) sum += acb[i][j] ;
printf("%d\n" , sum) ;
}
return 0 ;
}
1009
int main(){
int p , n , t , a , b , c , d , e ;
double cmax , cmin , g ;
cin>>t ;
while(t--){
cin>>p>>n ;
cmin = 1000.0 ;
cmax = -1000.0 ;
p *= n ;
for(a = 0 ; a <= n ; a++)
for(b = 0 ; b <= n ; b++)
for(c = 0 ; c <= n ; c++)
for(d = 0 ; d <= n ; d++)
for(e = 0 ; e <= n ; e++){
if(a + b + c + d + e == n
&& 85*a + 80*b + 75*c + 70*d + 60*e <= p
&& 100*a + 84*b + 79*c + 74*d + 69*e >= p){
g = (4.0*a + 3.5*b + 3.0*c + 2.5*d + 2.0*e) / n ;
cmin = min(cmin , g) ;
cmax = max(cmax , g) ;
}
}
printf("%.4lf %.4lf\n" , cmin , cmax) ;
}
return 0 ;
}
1011
typedef long long LL;
const int maxn = 100008 ;
int n ;
LL c[maxn] , cnt[maxn] ;
inline int lowb(int x){
return x & (-x) ;
}
void into(int i , LL d){
for(; i <= n ; i += lowb(i)) c[i] += d ;
}
LL sum(int i){
LL t = 0 ;
for( ; i >= 1 ; i -= lowb(i)) t += c[i] ;
return t ;
}
int main(){
int m , i ,j , l , r , t , k ;
LL h , d ;
while(cin>>n&&n){
fill(c , c+n+1 , 0) ;
scanf("%d" , &m) ;
while(m--){
scanf("%d%d%I64d" , &l ,&r ,&d) ;
into(l , d) ;
into(r+1 , -d) ;
}
fill(cnt , cnt+n+2 , 0) ;
for(i = n ; i >= 1 ; i--) cnt[i] += cnt[i+1] + sum(i) ;
scanf("%d" , &k) ;
t = 0 ;
while(k--){
scanf("%I64d%d",&h , &i) ;
if(cnt[i] < h) t++ ;
}
printf("%d\n" , t) ;
}
return 0;
}