#include<iostream>;
#include<list>;
#include<algorithm>;
using namespace std;
int main(){
long p;
list<long> l1;
cin>>p;
for(int i = 1; i < p;i++){
for (int j = 1; j <= i; ++j) {
if(j!=1){
if(i%j==0&&i!=j){
break;
}
if(j==i){
l1.push_back(i);
}
}
}
}
list<long>::iterator it;
list<long>::iterator it1;
long max1=1;
for (it=l1.begin();it!=l1.end();it++) {
long a=*it;
for (it1=l1.begin();it1!=l1.end();it1++) {
long b=*it1;
if(a*b==p){
max1=max({a,b,max1});
}
}
}
cout<<max1;
}
想问下该怎么改进。谢谢