Nu reusesc sa fac 100 de puncte la SumDivOgl :
Cerința
Se dau n numere naturale. Determinați suma divizorilor oglinditelor celor n numere.
Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații.
Date de ieșire
Programul va afișa pe ecran numărul S, reprezentând suma cerută.
Restricții și precizări
1 ≤ n ≤ 1000
cele n numere citite vor fi mai mici decât 1.000.000.000
Exemplu
Intrare
3
12 23 30
Ieșire
99
Explicație
Oglinditul lui 12 este 21; suma divizorilor săi este 32. Oglinditul lui 23 este 32; suma divizorilor săi este 63. Oglinditul lui 30 este 3; suma divizorilor săi este 4.
Codul meu :
#include
using namespace std;
long long n,x,s;
int main()
{
cin>>n;
for(int i=0;i
{
cin>>x;
if(x>=10)
{
long long inv=0;
while(x)
{
inv=inv*10+x%10;
x/=10;
}
x=inv;
}
///cout<
int d;
for(d=1;d*d
{
if(x%d==0)
{
s+=d;
if(x % (x/d)==0)
s+=(x/d);
}
}
if(d*d==x)
s+=d;
}
cout<
return 0;
}
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
#include<iostream>
using namespace std;
int main()
{
long long s=0;
int ogl,n,v[1001],i,j;
cin>>n;
for(i=1;i<=n;i++)
{
cin>>v[i];
ogl=0;
while(v[i]!=0)
{
ogl=ogl*10+v[i]%10;
v[i]=v[i]/10;
}
for(j=1;j*j<=ogl;j++)
{
if(j*j==ogl)
s=s+j;
else if(ogl%j==0 && j*j!=ogl)
s=s+j+ogl/j;
}
}
cout<<s;
return 0;
}
Explicație:
Alexia5410:
StefanGroparu21 Mă poți ajuta la ultimul exercițiu postat de pe contul meu legat de informatică? Te rog!
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă