Documente Academic
Documente Profesional
Documente Cultură
Cuprins
Problema #2324 prim002 ....................................................................................................................................................... 1
Problema #1409 – Numere11................................................................................................................................................. 2
Problema #2323 Prim001 ....................................................................................................................................................... 3
Problema #2363 Joc8 .............................................................................................................................................................. 4
Problema #3200 NeaDrăgulin ................................................................................................................................................. 5
Problema #2306 Numere22.................................................................................................................................................... 5
Exemplu:
Intrare iesire
2018 1009
Divizorii lui 2018 sunt 1, 2, 1009, 2018, iar cel mai mare divizor prim este 1009.
Rezolvare 100p:
#include <iostream>
using namespace std;
int main()
{long long n, max = 0, d = 2;
cin >> n;
while(d * d <= n)
{ if(n % d == 0)
{while(n % d == 0)
n /= d;
9
7 30 2 17 14 10 9 3 13 => rezultat: 62
Rezolvare 100p:
#include <iostream>
#include <cmath>
int main()
{
int n,x;
long long sum=0;
cin>>n;
for(int i=1;i<=n; i++)
{
cin>>x;
int fp=2,fpmax=0;
while(x>1)
{
int p=0;
while(x%fp==0)///daca e factor impart si numar
{
p++;
x/=fp;
}
if(p>0) ///daca a fot factor il memorez ca fiind maxim
fpmax=fp;
fp++;
int main()
{
/// nrdiv=(e1+1)*(e2+1)*…(ek+1), unde e1..ek sunt puterile factorilor din
/// descompunerea in factori primi a lui n
cin >> n;
/// nrdiv(n)=(e1+1)*(e2+1)*…(ek+1)
/// nrdiv(n^n)=(n*e1+1)*(n*e2+1)*…(n*ek+1)
/// Observatie:
Cunoscând numărul n de numere, precum şi cele n numere naturale extrase din cutie determinați câte dintre acestea
au fost alternante.
Exemplu:
joc8.in joc8.out
10 6
193 7 721 14263 28 279 9 1523142 769 15752
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("joc8.in");
ofstream fout("joc8.out");
int main()
{
char s[15];
bool ok;
int n,nr=0;
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>s;
if(strlen(s)%2==1)
{ ok=1;
if(strlen(s)==1)
nr++;
else
{
for(int j=1;s[j+1];j++)
if((s[j-1]<s[j] && s[j+1]<s[j])||(s[j-1]>s[j] && s[j+1]>s[j]))
continue;
else
{
ok=0;
break;
}
if(ok==1)
nr++;
}
}
}
fout<<nr;
return 0;
}
Problema #3200 NeaDrăgulin
Nea Drăgulin are un număr natural n pe care îl scrie de k ori, unul după altul. Aflați restul împărțirii numărului
astfel obținut la 72.
Exemplu:
Intrare iesire
51 3 63
LL ridicareLog(int a,int b)
{
LL r=1;
while(b)
{
if(b%2==1)
r=r*a;
a=a*a;
b/=2;
}
return r;
}
int main()
{
LL n,k,p,cpy;
cin>>n>>k;
p=ridicareLog(10,log10(n)+1);
cpy=n;
while((k-1)%72>0)
{
k--;
n=((n % 72)*(p % 72)+cpy%72)%72;
}
cout<<n%72;
return 0;
}
Intrare iesire
7 2 5 3
72 56 70 9 700
while (v[i]%q==0)
{
v[i]=v[i]/q;
eq++;
}
}
if (ep<eq)
cout<<ep;
else
cout<<eq;
}
int main()
{
int n, p, q, i, v[1001];
cin>>p>>q>>n;
for (i=1;i<=n;i++)
cin>>v[i];
numere(n, v, p, q);
return 0;
}