infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: alexandru ionescu din Martie 30, 2012, 23:04:21



Titlul: prime
Scris de: alexandru ionescu din Martie 30, 2012, 23:04:21
algoritm recursiv nr prime:

#include...
int prim(int n, int i)
{
 if(i==1)return 1;
 else if(n%i==0)return 0;
 else return prim(n,i-1);
}
void main()
{
 int n;citesc,scriu n;
 if(prim(n,sqrt(n)) afisari...
}

nu inteleg insctructiunea return prim(n,i-1). Ce face(intoarce) si de cate ori se executa. (daca se poate sa-mi explicati, chiar si pe larg)
Multumesc.


Titlul: Răspuns: prime
Scris de: roby10 din Martie 30, 2012, 23:21:23
ruleaza-l cu debug si vezi exact ce face si intelegi si cum face


Titlul: Răspuns: prime
Scris de: Sorin Rita din Martie 30, 2012, 23:22:40
Programul tau incearca sa ia toate numerele de la sqrt(n) pana la 1 si daca n nu se divide cu niciunul din ele inseamna ca e prim. Prima data il ia pe sqrt(n) si daca numarul tau,n, nu se divide cu el atunci trece la urmatorul, adica il verifica pe sqrt(n)-1. Si tot asa pana ajunge la 1 sau pana gaseste un divizor si inseamna ca numarul nu-i prim.