Pagini recente » Rating Geamanu Adriana Maria (adriana_geamanu) | Cod sursa (job #585117) | Cod sursa (job #2987665) | Cod sursa (job #2959505) | Cod sursa (job #2321110)
#include <bits/stdc++.h>
using namespace std;
ifstream f("indep.in");
ofstream g("indep.out");
int n,i,j,a;
vector<int> dyn[1010];
vector<int> operator+(vector<int> a,vector<int> b)
{
vector<int> c;
int ovr=0;
for(int i=0;i<=max(a.size(),b.size())+10;i++)
{
c.push_back(ovr);
if(i<a.size())c[i]+=a[i];
if(i<b.size())c[i]+=b[i];
ovr=c[i]/10;
c[i]%=10;
}
while((!c[c.size()-1])&&(c.size()>1))
c.pop_back();
return c;
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
{
f>>a;
for(j=1;j<=1000;j++)
{
int x=__gcd(j,a);
dyn[x]=dyn[x]+dyn[j];
}
vector<int> v={1};
dyn[a]=dyn[a]+v;
}
for(i=dyn[1].size()-1;i>=0;i--)
g<<dyn[1][i];
return 0;
}