Pentru a eficientiza acest program, vom cauta initial cel mai mic divizor propriu al numarului n. Perechea lui este divizorul propriu cel mai mare al lui n.
Astfel impartindu-l pe n o singura data la cel mai mic divizor propriu al sau, va rezulta cel mai mare divizor propriu al numarului n.
#include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=2; i<=n/2; i++)
if(n%i==0) {
cout<<(n/i);
return 0;
}
}
return 0; scris in acel if va inchide programul odata ce se gaseste cel mai mare divizor propriu al lui n.