Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #define ULL unsigned long long int
- using namespace std;
- bool prim(ULL n)
- {
- if(n%2==0ULL)
- return false;
- ULL d=3ULL;
- for(;d*d<=n;d+=2ULL)
- if(n%d==0)
- {
- return false;
- break;
- }
- if(d*d==n)
- return false;
- return true;
- }
- int main()
- {
- ULL n;
- cin>>n;
- if(prim(n))
- {
- cout<<n;
- return 0;
- }
- ULL d=2;
- if(n%d==0)
- if(prim(n/d))
- {
- cout<<n/d;
- return 0;
- }
- for(d=3;d*d<n;d+=2)
- if(n%d==0ULL)
- if(prim(n/d))
- {
- cout<<n/d;
- return 0;
- }
- if(d*d==n&&prim(d))
- {
- cout<<d;
- return 0;
- }
- for(ULL i=d-1;d>1;--i)
- if(n%i==0)
- if(prim(i))
- {
- cout<<i;
- return 0;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement