Pagini recente » Cod sursa (job #2376835) | Cod sursa (job #343295) | Cod sursa (job #2645695) | Cod sursa (job #2226553) | Cod sursa (job #2094316)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("indep.in");
ofstream out("indep.out");
int cmmdc[1001][100];
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
int gcdd(int a,int b)
{
if(a<b)
return gcd(b,a);
return gcd(a,b);
}
void suma(int a[],int b[])
{
int r=0,i;
for(i=1;i<=a[0]||i<=b[0]||r;i++)
{
r+=a[i]+b[i];
a[i]=r%100000;
r/=100000;
}
a[0]=i-1;
}
int main()
{
int n,i,nr;
in>>n;
cmmdc[0][0]=cmmdc[0][1]=1;
for(i=1;i<1001;i++)
cmmdc[i][0]=1;
while(n--)
{
in>>nr;
for(i=1;i<=1000;i++)
suma(cmmdc[gcdd(nr,i)],cmmdc[i]);
suma(cmmdc[nr],cmmdc[0]);
}
for(i=cmmdc[1][0];i>0;i--)
out<<cmmdc[1][i];
return 0;
}