2012 Asia Tianjin Regional Contest 水题暴力
#include "stdio.h"
#include "string.h"
#include "math.h"
int main()
{
int n,m,ans,i,mark;
int a[1001];
while (scanf("%d%d",&n,&m)!=EOF)
{
ans=0;
for (i=1;i<=sqrt((double)n);i++)
if(n%i==0)
{
if (i*i==n)
{
mark=i;
while (mark!=0)
{
ans+=(mark%m)*(mark%m);
mark/=m;
}
}
else
{
mark=i;
while (mark!=0)
{
ans+=(mark%m)*(mark%m);
mark/=m;
}
mark=n/i;
while (mark!=0)
{
ans+=(mark%m)*(mark%m);
mark/=m;
}
}
}
n=0;
while (ans!=0)
{
a[n++]=ans%m;
ans/=m;
}
for (i=n-1;i>=0;i--)
if (a[i]<=9)
printf("%d",a[i]);
else
printf("%c",a[i]-10+'A');
printf("\n");
}
return 0;
}