#pragma GCC optimize("Ofast") #pragma GCC target("avx2") unsigned char old[1500000>>4]; main(){ long n; scanf("%ld",&n); n>>=~n&1; long z=1; while((n&1)==0){ z=z*2+1; n>>=1; } long s=sqrt(n); long s2=(s>>1)+1; long s16=(s>>4)+1; for(long i=0;i<=s16;++i){ int b=old[i]^255; if(b){ long p=i<<4|3; do{ if(b&1){ if(n%p==0){ long y=1; do{ y=y*p+1; n/=p; }while(n%p==0); z*=y; } for(long k=p*p-3>>1;k<=s2;k+=p){ old[k>>3]|=1<<(k&7); } } p+=2; }while(b>>=1); } } if(n>1){ z*=n+1; } printf("%ld",z); }