定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。
例如,34是17的倍数,因为3-20=-17是17的倍数;201不是17的倍数,因为20-5=15不是17的倍数。输入一个正整数n,你的任务是判断它是否是17的倍数。
34
201
2098765413
1717171717171717171717171717171717171717171717171718
0
1
0
1
0
无
想法:
取余
代码:
#include<stdio.h>
#include<string.h>
char s[1010];
int main()
{
while(scanf("%s",s)!=EOF)
{
if(s[0]=='0')
break;
int len=strlen(s);
int i,j,k=0;
for(i=0;i<len-1;i++)
{
k=k*10+(s[i]-'0');
k=k%170;
}
int k1=(s[len-1]-'0')*5;
//printf("%d %d\n",k,(k-k1)%17);
int h=k*10+(s[len-1]-'0');
if(h%17==0&&(k-k1)%17==0)
printf("1\n");
else
printf("0\n");
}
return 0;
}