Pentru un numar dat aflati suma divizorilor impari. Program C++ recursiv.
Răspunsuri la întrebare
Răspuns de
0
C++:
#include <iostream>
using namespace std;
int main()
{
int num, sum = 0;
cin >> num;
for(int i = 1; i <= num/2; i++)
{
if(i %2 != 0 && num % i == 0)
sum+= i;
}
cout << sum;
}
Pascal:
var
n, i, s: Integer;
begin
Write('Un numar natural: ');
Readln(n);
Writeln('Divizorii impari: ');
for i := 1 to n div 2 do
if (Odd(i)) and (n mod i = 0) Then
begin
Inc(s, i);
Write(i, ' ');
end;
Writeln;
Writeln('Suma divizorilor impari: ', s);
end.
Răspuns de
1
int suma(int n, int d)
{
if(d==n) return n;
else if(n%d==0 && d%2!=0)
return d+suma(n,d+1);
else return suma(n,d+1);
}
int main()
{
int n;
cin>>n;
cout<<suma(n,1);
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Franceza,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Istorie,
9 ani în urmă