[HDU4432][TJ02B]Sum of divisors

来源:互联网 发布:debug.print如何使用vb 编辑:程序博客网 时间:2024/06/05 16:08
#include<iostream>#include<cstdio>#include<map>#include<cstring>#include<cmath>#include<vector>#include<queue>#include<algorithm>#include<set>#define inf (1ull<<63)-1#define N 100005#define maxn 100005#define pb(a) push_back(a)#define mem(a,b) memset(a,b,sizeof(a))#define eps 1e-9#define zero(a) fabs(a)<eps#define LL long long#define ULL unsigned long long#define lson l,m,step<<1#define rson m+1,r,step<<1|1#define MOD 1000000007#define mp(a,b) make_pair(a,b)using namespace std;LL n,m;int main(){    LL T,i,j,k;    while (scanf ("%lld%lld",&n,&m)!=EOF)    {LL ans=0;for (i=1;i*i<=n;i++){if (n%i==0){j=i;while (j){k=j%m;ans+=k*k;j/=m;}if (i*i==n)continue;j=n/i;while (j){k=j%m;ans+=k*k;j/=m;}}}vector<int>q;while (ans){q.push_back((int)ans%m);ans/=m;}for (int l=q.size()-1;l>=0;l--){int s=q[l];if (s>9)printf ("%c",(char)s-10+'A');else printf ("%d",s);}puts("");    }    return 0;}