Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: Problema clasa a IX-a  (Citit de 2946 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
Onyx
Strain


Karma: -2
Deconectat Deconectat

Mesaje: 3



Vezi Profilul
« : Septembrie 25, 2013, 15:42:49 »

Un numar este perfect daca el este egal cu suma divizorilor sai(Exclusiv el insusi).Scrieti un algoritm care sa testeze daca un numar natural dat este perfect.Tocmai am terminat pseudocodul si ne-a dat tema acest exercitiu de facut in c++.Eu am presupus ca are 3 divizori numarul si nu sunt sigur daca am facut corect.In plus, daca exista alta metoda mai buna sa imi spuneti.
#include <fstream>
#include <iostream>
using namespace std;
int a,b,c,d;
int main()
{
    a=b*c*d;
    if(b*c*d==b+c+d)
    cout<<1;
    else cout<<0;
    return 0;
}
 
Memorat
rares96cheseli
Client obisnuit
**

Karma: 45
Deconectat Deconectat

Mesaje: 60



Vezi Profilul
« Răspunde #1 : Septembrie 25, 2013, 19:28:27 »

Nu e corect ce faci. In primul rand ca problema ar trebui rezolvata pentru un numar oarecare, nu pt unul care are doar 3 divizori si in al 2-lea rand in codul tau a, b, c si d sunt toate egale cu 0 deoarece nu le citesti si nici nu le dai tu vreo valoare. In arhiva educationala de pe infoarena e explicat destul de bine cum se determina numarul divizorilor unui numar. Uite link-ul aici http://www.infoarena.ro/problema/ssnd. Sper sa te ajute!  Ok
Memorat
PlayLikeNeverB4
Nu mai tace
*****

Karma: 212
Deconectat Deconectat

Mesaje: 721



Vezi Profilul
« Răspunde #2 : Septembrie 25, 2013, 21:26:42 »

Probabil ca problema din arhiva educationala e prea complicata pentru ce are nevoie el.
Memorat
BLz0r
Strain
*

Karma: -14
Deconectat Deconectat

Mesaje: 35



Vezi Profilul
« Răspunde #3 : Septembrie 25, 2013, 23:54:27 »

Cod:
#include <iostream>
using namespace std;

int main(){
    int x,i,s=0;

    cin >>x

    for (i=1;i<=x/2;++i)
         if (x%i==0)
            s=s+i;

    if (s==x)
        cout <<"Numarul "<<x<<"este perfect";
    else
        cout <<"Numarul "<<x<<"nu este perfect";

    return 0;
}
Asta e rezolvarea pentru orice numar de divizori. Daca iti e ceva neclar te rog sa-mi spui  Very Happy
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines