Pagini recente » Cod sursa (job #433484) | Cod sursa (job #2322251) | Cod sursa (job #1666496) | Cod sursa (job #2291629) | Cod sursa (job #2580735)
#include<bits/stdc++.h>
using namespace std;
struct HugeN{
vector<int> nr;
HugeN (){
nr.clear();
}
HugeN(int x){
nr.clear();
while(x>0){
nr.push_back(x%10);
x/=10;
}
}
};
void add(HugeN &a,const HugeN &b){
int t=0;
for(int i=0;i<a.nr.size() || i<b.nr.size() || t>0;i++){
if(i<a.nr.size()){
t+=a.nr[i];
}
if(i<b.nr.size()){
t+=b.nr[i];
}
if(i<a.nr.size())
a.nr[i]=t%10;
else
a.nr.push_back(t%10);
t/=10;
}
}
const int N=1005;
HugeN d[N];
int main()
{
FILE*fin,*fout;
fin=fopen("indep.in","r");
fout=fopen("indep.out","w");
int n;
fscanf(fin,"%d",&n);
d[0]=1;
for(int i=1;i<=n;i++){
int x;
fscanf(fin,"%d",&x);
for(int j=1;j<N;j++){
if(!d[j].nr.empty()){
int g=__gcd(x,j);
add(d[g],d[j]);
}
}
add(d[x],d[0]);
}
for(int i=d[1].nr.size()-1;i>=0;i--)
fprintf(fout,"%d",d[1].nr[i]);
if(d[1].nr.empty()){
fprintf(fout,"0");
}
return 0;
}