You are on page 1of 3

Problema 1:

bool prim(int x)
{
if (x<=1)
return false;
for (int d=2; d*d<=x; d++)
if (x%d==0)
return false;
return true;
}

int suma(int n)
{
int s=0;
for (int d=1; d*d<=n; d++)
if (n%d==0)
{
if (!prim(d))
s+=d;
if (d*d<n && !prim(n/d))
s+=n/d;
}
return s;
}

Problema 2:

#include <iostream>

using namespace std;

int f[401];

int main()
{
int n, m, i, j, mat[21][21];
int maxim=0, minim=401;
cin>>n>>m;
for (i=1; i<=n; i++)
{
for (j=1; j<=m; j++)
cin>>mat[i][j];
maxim=max(maxim, mat[i][1]);
maxim=max(maxim, mat[i][m]);
minim=min(minim, mat[i][1]);
minim=min(minim, mat[i][m]);
f[mat[i][1]]++;
f[mat[i][m]]++;
}
for (i=minim; i<=maxim; i++)
if (f[i]==2)
cout<<i<<' ';
return 0;
}

Problema 3:

Problema 1:
bool prim(int x)
{
if (x<=1)
return false;
for (int d=2; d*d<=x; d++)
if (x%d==0)
return false;
return true;
}

int suma(int n)
{
int s=0;
for (int d=1; d*d<=n; d++)
if (n%d==0)
{
if (!prim(d))
s+=d;
if (d*d<n && !prim(n/d))
s+=n/d;
}
return s;
}

Problema 2:

#include <iostream>

using namespace std;

int f[401];

int main()
{
int n, m, i, j, mat[21][21];
int maxim=0, minim=401;
cin>>n>>m;
for (i=1; i<=n; i++)
{
for (j=1; j<=m; j++)
cin>>mat[i][j];
maxim=max(maxim, mat[i][1]);
maxim=max(maxim, mat[i][m]);
minim=min(minim, mat[i][1]);
minim=min(minim, mat[i][m]);
f[mat[i][1]]++;
f[mat[i][m]]++;
}
for (i=minim; i<=maxim; i++)
if (f[i]==2)
cout<<i<<' ';
return 0;
}

Problema 3:

#include <iostream>
#include <fstream>
using namespace std;

ifstream fin ("bac.in");

int poz[10], cnt[10];

int main()
{
int x, p=1, maxim=0;
while (fin>>x)
{
cnt[x/10%10]++;
poz[x/10%10]=p;
if (cnt[x/10%10]>maxim)
maxim=cnt[x/10%10];
p++;
}
for (int i=1; i<=10; i++)
if (cnt[i]==maxim)
cout<<poz[i]<<' ';
return 0;
}

You might also like