Soluţii propuse - limbajul C++


Soluţii pentru problemele propuse

  •  Soluţii  •  
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;
}

 

   Informatică - clasa a IX-a şi clasa a X-a

 prof.Ţopa Robert