数学取模运算——1的个数

2019-04-13 13:30发布

问题 I: 1的个数

时间限制: 1 Sec  内存限制: 32 MB
提交: 9  解决: 6
[提交][状态][讨论版]

题目描述

对于一个给定的[0,10000]内的不能被2或5整除的整数n,n放大某些倍数后,结果会是仅由很多1组成的一个数a。现在请你找出最小的那个a中包含的1的个数。

输入

输入包含多组测试数据。每组输入为一个整数n(0<=n<=10000)。

输出

对于每组输入,输出最小的那个a中包含的1的个数。

样例输入

3 7 9901

样例输出

3 6 12 提示
模运算的重要结论:(a*b)%p=(a%p*b)%p    (a+b)%p=(a%p+b)%p
#include using namespace std; int main() { int n; while(cin>>n) { int k=0; for(int i=1;;i++) { k=k%n*10+1;//提前让k对n取模与原式相等 if(k%n==0) { cout<