| Enunţul problemei
Se citeşte de la tastatură un număr natural n(n>2). Să se afişeze pe ecran cel mai mare număr prim mai mic decât suma divizorilor proprii ai numărului n. Exemplu: n=24, suma divizorilor proprii este 35 (2+3+4+6+8+12=35). Cel mai mare număr prim mai mic decât 35 este 31. |
#include<iostream>
using namespace std; int main() { int n,s=0,ok=0,d,a; cout<<"n=";cin>>n; for(d=2;d<=n/2;d++) if(n%d==0) s=s+d; if(s==0) a=n-2; else if(s%2==0) a=s-1; else a=s-2; while(ok==0) { ok=1; for(d=2;d<=a/2 && ok==1;d++) if(a%d==0) ok=0; if(ok==0) a=a-2; } cout<<a; } |
"Dacă nu ai făcut niciodată o greşeală înseamnă că nu ai încercat niciodată nimic nou."
Albert Einstein
Informatică - clasa a IX-a şi clasa a X-a
prof.Ţopa Robert