Maison > interface Web > tutoriel HTML > Codeforces Round #157 (Div. 1) C. Little Elephant and LCM (数学、dp)_html/css_WEB-ITnose

Codeforces Round #157 (Div. 1) C. Little Elephant and LCM (数学、dp)_html/css_WEB-ITnose

WBOY
Libérer: 2016-06-24 11:54:39
original
1287 Les gens l'ont consulté

C. Little Elephant and LCM

time limit per test

4 seconds

memory limit per test

256 megabytes

input

standard input

output

standard output

The Little Elephant loves the LCM (least common multiple) operation of a non-empty set of positive integers. The result of the LCM operation of k positive integers x1,?x2,?...,?xk is the minimum positive integer that is divisible by each of numbers xi.

Let's assume that there is a sequence of integers b1,?b2,?...,?bn. Let's denote their LCMs as lcm(b1,?b2,?...,?bn) and the maximum of them as max(b1,?b2,?...,?bn). The Little Elephant considers a sequence b good, if lcm(b1,?b2,?...,?bn)?=?max(b1,?b2,?...,?bn).

The Little Elephant has a sequence of integers a1,?a2,?...,?an. Help him find the number of good sequences of integers b1,?b2,?...,?bn, such that for all i (1?≤?i?≤?n) the following condition fulfills: 1?≤?bi?≤?ai. As the answer can be rather large, print the remainder from dividing it by 1000000007 (109?+?7).

Input

The first line contains a single positive integer n (1?≤?n?≤?105) ? the number of integers in the sequence a. The second line contains nspace-separated integers a1,?a2,?...,?an (1?≤?ai?≤?105) ? sequence a.

Output

In the single line print a single integer ? the answer to the problem modulo 1000000007 (109?+?7).

Sample test(s)


input

41 4 3 2
Copier après la connexion

output

15
Copier après la connexion

input

26 3
Copier après la connexion

output

13
Copier après la connexion
题意:
Copier après la connexion
给你一个a序列,找出一个b序列,1?≤?bi?≤?ai,使得max(bi)=lcm(bi),问这样的bi序列有多少个。
Copier après la connexion
思路:
Copier après la connexion
先对a排序,枚举i=max(bi),对i因式分解,那么大于等于i的部分很好处理,直接pow_mod()相减,小于i的部分就任意取一个约束就够了。
Copier après la connexion
代码:
Copier après la connexion
<pre name="code" class="n">#include <iostream>#include<cstring>#include<cstdio>#include<string>#include<vector>#include<algorithm>#define INF 0x3f3f3f3f#define maxn 100005#define mod 1000000007typedef long long ll;using namespace std;int n;int a[maxn];ll pow_mod(ll x,ll n){    ll res = 1;    while(n)    {        if(n&1) res = res * x %mod;        x = x * x %mod;        n >>= 1;    }    return res;}void solve(){    int i,j;    ll ans=0,res;    sort(a+1,a+n+1);    for(i=1;ifac;        for(j=1;j*j</algorithm></vector></string></cstdio></cstring></iostream>
Copier après la connexion
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal