题目描述
威尔克森教授正在教授一门计算机安全课程。作为一项练习,他让每位学生为自己的学号生成一个校验位,然后让其他学生确认该校验位是否正确。 他给学生的算法如下: 最右侧的数字乘以 2,其左侧相邻的数字乘以 3,以此类推(从右往左,乘数依次递增 1),然后将这些乘积求和。 将这个总和除以 11,用 11 减去所得的余数。 如果得到的数字在 1 到 9 的范围内,则将其附加在学号的右侧。 若该数字为 11,则在学号右侧附加 0。 若该数字为 10,则此学号被拒绝,学生必须向教授申请临时学号! 要验证添加校验位后的学号是否有效,需将最右侧的数字乘以 1,其左侧相邻的数字乘以 2,以此类推(从右往左,乘数依次递增 1),并像之前一样求和。如果总和能被 11 整除,则新学号有效。
输入格式
输入为一系列数字,每行一个。每个数字至少包含 10 位十进制数字,最多不超过 15 位。最后一行为单个 0—— 这标志着输入结束,无需处理。
输出格式
对于每行输入,按照上述算法计算所需的校验位。
输出一行内容,包含原始学号,后跟符号 “-> ”,再后跟添加校验位后的学号,或根据情况显示 “rejected”。
样例数据
input
276320156824553
643479110054
6434791122
0
output
276320156824553 -> 2763201568245531
643479110054 -> 6434791100544
6434791122 -> rejected