整除“光棍”_光棍如何解决个人问题

(55) 2024-05-29 07:01:04

题目描述

这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由 11 组成的数字,比如 1、111、111、11111、111、111、1111 等。传说任何一个光棍都能被一个不以 55 结尾的奇数整除。比如, 111111111111 就可以被 1313 整除。 现在,你的程序要读入一个整数 xx ,这个整数一定是奇数并且不以 55 结尾。然后,经过计算,输出两个数字:第一个数字 ss,表示xx 乘以 ss 是一个光棍,第二个数字nn是这个光棍的位数。这样的解当然不是唯一的,题目要求你输出最小的解。

提示:一个显然的办法是逐渐增加光棍的位数,直到可以整除 xx 为止。但难点在于,ss 可能是个非常大的数 —— 比如,程序输入 3131 ,那么就输出 35842293906813584229390681和 1515 ,因为 3131 乘以 35842293906813584229390681 的结果是 111111111111111111111111111111 ,一共 1515 个 11。

输入

输入在一行中给出一个不以 5 结尾的正奇数 x(x<1000)。

输出

在一行中输出相应的最小的 s 和 n,其间以 1 个空格分隔。

样例输入

31

样例输出

3584229390681 15

看到这道题你可能会想用个循环用a%10+1;这样每次多个1,若余x等于0,则输出a,x才31输出的就这么大了,x的范围是小于1000,输出的数一定会很大,超过int,int long long 的范围,所以我们就想着让它一个一个的输出࿰

THE END

发表回复