Am de rezolvat cateva exercitii, si nu le inteleg in totalitate:
1) Numara valorile din (a;b) care au toate cifrele pare.
2) Afiseaza suma cifrelor fiecarui numar din (a;b] ce au exact 3 divizori.
Răspunsuri la întrebare
Răspuns:
#include <iostream>
using namespace std;
int main()
{
int a,b,num,cif,contor=0, pare, x;
cin >> a >> b;
for (num=a+1; num<b; num++)
{
pare=1;
x=num;
while (x>0)
{
cif=x%10;
if (cif%2==1)
{
pare=0; break;
}
x=x/10;
}
if (pare==1) ++contor;
}
cout << contor;
return 0;
}
Explicație:
problema2. exact 3 divizori au numai patratele numerelor prime, 4, 9, 25, 49, 121, 169, ...
#include <iostream>
#include <cmath>
using namespace std;
int prim(int x)
{
int p=1;
if (x<2) p=0;
else
{
if (x>2)
{
if (x%2==0) p=0;
else
{
for (int d=3; d*d<=x; d+=2)
{
if (x%d==0)
{
p=0; break;
}
}
}
}
}
return p;
}
int main()
{
int a,b,num, suma=0, x, c;
cin >> a >> b;
for (num=a+1; num<=b; num++)
{
x=sqrt(num); c=num;
if (x*x==num && prim(x))
{
while (c)
{
suma=suma+c%10;
c=c/10;
}
}
}
cout << suma;
return 0;
}