Informatică, întrebare adresată de raulsazor13, 9 ani în urmă

Cerinţa
Se citește un număr natural n. Să se determine suma divizorilor săi.

Date de intrare
Programul citește de la tastatură numărul n.

Date de ieşire
Programul afișează pe ecran numărul S, reprezentând suma divizorilor lui n.

Restricţii şi precizări
0 < n ≤ 1.000.000.000

Răspunsuri la întrebare

Răspuns de Davidpiscot
3
         #include<iostream>
          using namespace std; 
           int main()
          { unsigned n,i,s;
            cout<<"n="; cin>>n;
           s=0;
            for(i=1;i<=n;i++)
            {
               if(n%i==0)
               {
               s+=i;
               }
           } 
               cout<<"Suma div.este:"<<s;
           return 0;
         }
        

DianaNico: eu stiu ca e suficient sa cauti divizorii pana la jumatea numarului
Davidpiscot: Eu asa l-am facut la scoala
DianaNico: mie, la liceu, mi s-a spus ca e suficient sa cauti pana la jumatatea numarului, fiindca e mai eficient, iar dupa jumatate divizorii sunt aceeasi
Davidpiscot: Ehhh...tot aia da.
Davidpiscot: Noua de jumatate ne-a zis la nr.prim
DianaNico: pai toata faza cu jumatate tine doar de eficienta programului, in cazul in care te intereseaza sa faci ceva mai complex
Davidpiscot: Mai bine corecteaza-ti programul...
Răspuns de DianaNico
1
#include<stdio.h>
#include<math.h>

int main()
{
    int i,n,s;
    scanf("%d",&n);
    s=n;
    for(i=1;i<=trunc(n/2); i++)
        if(n%i==0)
            s= s+i;
    printf("%d",s);
    return 0;
}


Davidpiscot: Tu ai nevoie de div. nr-ului
Davidpiscot: Adica, n%i==0
DianaNico: nu am fost atenta, mersi ca m-ai atentionat
Davidpiscot: :)
Davidpiscot: Si sus...unsigned
Davidpiscot: La ce profil ai fost?
DianaNico: mate-info dar am facut pascal, c am inceput de curand sa il invat singura
Davidpiscot: Aaaa.Dar ce clasa esti?
DianaNico: am terminat
Davidpiscot: AAa.La ce facultate esti?
Alte întrebări interesante