若一个数无论在任何进位制中都是哈沙德数,称为全哈沙德数(全尼云数)。只有四个全哈沙德数:1, 2, 4, 6。
所有在零和进位制的底数之间的数都是哈沙德数。
除非是个位数,否则素数不是哈沙德数。
在十进制中,100以内的哈沙德数: 10, 12, 18, 20, 24, 27, 30, 36, 40, 42, 45, 48, 50, 54, 60, 63, 70, 72, 80, 81, 84, 90, 100 ...
#include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> int main() { int n,ans1,ans2,tcase,b,len,i; char a[100]; while(scanf("%d",&tcase)==1) { while(tcase--) { while(scanf("%d",&b)&&b) { scanf("%s",a); len=strlen(a); ans1=0; ans2=0; for(i=0;i<len;i++) { ans1+=a[i]-'0'; ans2=ans2*b+a[i]-'0'; } if(ans2%ans1==0) printf("yes\n"); else printf("no\n"); } if(tcase) printf("\n"); } } }