新春游戏之数学系列
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

                              
                                               Can you help Bingbong solve the math problem?
的数学竞赛又考砸了,这也就意味着压岁钱又要减半了,但是!心地善良的朵朵姐姐决定再给他一次机会,给他出了一道数学题,如果他能正确解答,那么压岁钱就翻上一番。题目如下:
给你一个长度为 的整数序列
求:             \sum_{i=1}^n \sum_{j=1}^n gcd(a_i,a_j)\times (popcount(a_i)+popcount(a_j)) %
其中表示整数 在二进制下的 的个数,表示两个数的最大公约数。
的由于竞赛考砸,心情还处于一个极其低落的状态,为了能拿到更多的压岁钱,他决定请教数学高手的你来帮助他解决这个问题。

输入描述:

第一行一个整数 第二行个整数,表示
数据范围:

输出描述:

一行一个整数,表示答案。
示例1

输入

复制
5
666 230 120 4 12

输出

复制
10672