8是中国的幸运数字,如果一个数字的每一位都由8构成则该数字被称作是幸运数字。

现在给定一个正整数L,请问至少多少个8连在一起组成的正整数(即最小幸运数字)是L的倍数。

输入格式

输入包含多组测试用例。

每组测试用例占一行,包含一个整数L。

当输入用例L=0时,表示输入终止,该用例无需处理。

输出格式

每组测试用例输出结果占一行。

结果为“Case 1: ”+一个整数N,N代表满足条件的最小幸运数字的位数。

如果满足条件的幸运数字不存在,则N=0。

数据范围

1≤L≤2∗1091≤L≤2∗109

输入样例:

8
11
16
0

输出样例:

Case 1: 1
Case 2: 2
Case 3: 0
题意:找到满足最小的满足要求的长度8,要求能被L整除
思路:首先我们可以化简式子
8*(10^x-1)/9 | L -> 8*(10^x-1)| 9*L -> (10^x-1) | 9*L/gcd(L,8) -> 10^x = 1 mod 9*L/gcd(L,80)
 化简到这种式子后我们一般有两个定理可以运用
费马小定理
如果a,p互质 a^p = a mod p 欧拉定理
如果 a,p 互质 a^phi(p) = 1 mod p;
phip) 不一定 是最优的答案,有可能是他的因子,所以我们还要枚举他的因子
#include<bits/stdc++.h>
#define maxn 305
#define mod 1000000007
#define MAX 100000000000000000
using namespace std;
typedef long long ll;
ll quick_pow(ll a,ll b,ll c){
ll ans=;
while(b){
if(b&) ans=(ans*a)%c;
b=b/;
a=(a*a)%c;
}
return ans;
}
ll phi(ll x){
ll sum=x;
for(int i=;i<=sqrt(x);i++){
if(x%i!=) continue;
sum=sum/i*(i-);
while(x%i==) x/=i;
}
if(x>) sum=sum/x*(x-);
return sum;
}
int main(){
ll n;
ll num=;
while(cin>>n){
if(n==) break;
ll z=n/__gcd(n,(ll))*;
ll x=phi(z);
ll ans=MAX;
for(int j=;j*j<=x;j++){
if(x%j!=) continue;
if(quick_pow(,j,z)==) ans=min(ans,(ll)j);
if(quick_pow(,x/j,z)==) ans=min(ans,(ll)x/j);
}
if(ans==MAX) ans=;
cout<<"Case "<<num++<<": "<</*ans==MAX?(ll)0:*/ans<<endl;
}
}
 

最新文章

  1. Yii的学习(2)--数据访问对象 (DAO)
  2. cobbler重装、web、定制化
  3. Add a file to a Document Library and update metadata properties in a single method添加文档的方法
  4. Bash中的shopt选项
  5. go语言示例-Timer计时器的用法
  6. 【DB】SQLite学习笔记
  7. C++ 通过Thunk在WNDPROC中访问this指针实现细节
  8. 模式匹配-KMP算法
  9. C语言版的16进制与字符串互转函数
  10. React Image加载图片过大导致ListView滑动卡顿
  11. ⒁bootstrap组件 工具提示框 弹出框 警告框 基础案例
  12. CentOS搭建Apache+php+MySQL+Redis环境
  13. Python开发:Python2和Python3的共存和切换使用
  14. SyntaxError: missing ) after argument list
  15. Mock.js的简易使用
  16. Jfrog 与 jenkins Sonarqube的 测试样例 (From jfrog 培训)
  17. Silverlight提示“Load 操作失败。远程服务器返回了错误: NotFound”
  18. Ubuntu各版本的历史发行界面
  19. KNOCKOUTJS DOCUMENTATION-绑定(BINDINGS)-自定义绑定
  20. (转)Linux下PS命令详解

热门文章

  1. oracle查看数据库版本和字符集
  2. 【Flutter学习】之 Flutter 的生命周期
  3. Python基础教程(008)--第一个Python程序
  4. Delphi直接读取XmL
  5. 团队冲刺DAY7
  6. ML&amp;MLDS笔记:偏差 vs 方差
  7. P3203 [HNOI2010]弹飞绵羊(LCT)
  8. Web RTC + audio API 实现录音,并压缩
  9. nginx支持http2协议
  10. Tika教程