Pagini recente » Cod sursa (job #876707) | Cod sursa (job #2874883) | Cod sursa (job #2817238) | Cod sursa (job #2799113) | Cod sursa (job #488880)
Cod sursa(job #488880)
#include<cstdio>
#include<math.h>
#include<vector>
using namespace std;
int er[100];
int main ()
{
int ka,i,z,max,lim,j,fact[100],v[100];
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
scanf("%d",&z);
max=0;
for (i=1; i<=z; i++)
{
scanf("%d",&v[i]);
if (v[i]>max) max=v[i];
}
lim=sqrt(max);
ka=0;
for (i=2; i<=lim; i++)
if (er[i]==0)
{
fact[++ka]=i;
for (j=i+i; j<=lim; j+=i)
er[j]=1;
}
for (i=1; i<=ka; i++)
printf("%d ",fact[i]);
for (i=1; i<=z; i++)
{
nr=1; sum=1;
if (a[i]==1) ok=0; else ok=1;
for (j=1; j<=ka; j++)
{
if (fact[j]>a[i]) break;
if (a[i]==1) break;
exp=0;
while (a[i]%fact[j]==0)
{
exp++;
a[i]/=fact[j];
}
nr*=(exp+1);
//de facut si suma divizorilor (memorarea nr inainte de impartire)