unsovled, consider nagtive value, long long int case