The Luckiest number POJ3696(欧拉函数)

YOLOv10改进策略【Neck】| arXiv 2025 分层多头注意力HMHA 子空间拆分提多样 + 通道重排降冗余,强化目标检测精度 HMHA(Hierarchical Multi-Head Attention,分层多头注意力)旨在解决传统多头注意力(MHA)在图像恢复任务中的核心缺陷——特征冗余。传统MHA将通道均匀拆分给各个头,导致不同头学习的子空间信息相似,进而出现多头关注同一区域、忽略退化区域修复的问题,限制了模型的特征表达能力。HMHA通过“分层子空间拆分+通道重排序”策略,让每个头学习差异化、互补的上下文特征,从根源上缓解冗余,提升图像恢复任务中对复杂退化场景的特征捕捉能力。 阅读详情

The Luckiest number

 Chinese people think of '8' as the lucky digit. Bob also likes digit '8'. Moreover, Bob has his own lucky number L. Now he wants to construct his luckiest number which is the minimum among all positive integers that are a multiple of L and consist of only digit '8'. 

Input
The input consists of multiple test cases. Each test case contains exactly one line containing L(1 ≤ L ≤ 2,000,000,000).

The last test case is followed by a line containing a zero.

Output
For each test case, print a line containing the test case number( beginning with 1) followed by a integer which is the length of Bob’s luckiest number. If Bob can’t construct his luckiest number, print a zero.
Sample Input

8
11
16
0

Sample Output

Case 1: 1
Case 2: 2
Case 3: 0
题意:

题意:给你一个数L,让你求出最小的一个数能被L整除,这个数满足每一位都是8。

分析:

一个数字每一位都是8那么这样的数字可以写成

111...111×8=(10n−1+...+102+101+100)×8=10n−19×8111...111×8=(10n−1+...+102+101+100)×8=10n−19×8

那么上面式子中的n就是位数长度

因为这个数字要能被L整除所以得到

L | 8×10n−19L | 8×10n−19

↓↓

9L | 8×(10n−1)9L | 8×(10n−1)

设d=gcd(8,L)d=gcd(8,L)

可得到

9Ld | 8d×(10n−1)9Ld | 8d×(10n−1)

很明显9Ld 和 8d9Ld 和 8d是互质的

所以有

9Ld | (10n−1)9Ld | (10n−1)

所以可以得到

(10n−1)=m×9Ld(10n−1)=m×9Ld

所以根据同余式的定义可以写成

10n≡1 (mod 9Ld)10n≡1 (mod 9Ld)

化简到这里我们想起了欧拉定理

如果10和9Ld9Ld不互质那么必然是无解的

如果互质必然有10ϕ(9Ld)≡1 (mod 9Ld)10ϕ(9Ld)≡1 (mod 9Ld)

但是题目要求是最小的指数,所以我们需要在ϕ(9Ld)ϕ(9Ld)的因子中看是否有快速幂取模后等于1的,并且我们只需要判断它的因子就足够了

为什么呢

假设有个最小的数ff使的10f≡1 (mod 9Ld)

必然有10f≡(10f)k≡10fk≡ 10ϕ(9Ld)≡1k≡1(mod 9Ld)10f≡(10f)k≡10fk≡ 10ϕ(9Ld)≡1k≡1(mod 9Ld)

所以f只能是ϕ(9Ld)ϕ(9Ld)的因子

妈的做这个题的是哇了11法就是找不出错,最后乘法写了个快速乘法取模(快速幂改版)就过了???什么沙雕??

望大佬指点为啥,万分感激

code:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long ll;
ll L;
ll mul(ll a,ll b,ll mod){
        ll ans = 0;
        while(b){
                if(b & 1)
                        ans = (ans + a) % mod;
                a = (a + a) % mod;
                b >>= 1;
        }
        return ans;
}
ll q_pow(ll a,ll b,ll mod){
        ll ans = 1;
        while(b){
                if(b & 1)
                        ans = mul(ans,a,mod);//把这里改成快速乘就过了否则就wa??
                a = mul(a,a,mod);
                b >>= 1;
        }
        return ans;
}
ll Euler(ll n){
        ll ans = n;
        for(ll i = 2; i * i <= n; i++){
                if(n % i == 0){
                        ans = ans / i * (i - 1);
                        while(n % i == 0) n /= i;
                }
        }
        if(n > 1) ans = ans / n * (n - 1);
        return ans;
}
ll gcd(ll a,ll b){
        return b ? gcd(b,a%b) : a;
}
int main(){
        int cas = 0;
        while(~scanf("%lld",&L)){
                if(L == 0) break;
                ll p = 9 * L / gcd(L,8);
                ll d = gcd(10,p);
                if(d != 1){
                        printf("Case %d: 0\n",++cas);
                }
                else{
                        ll phi = Euler(p);
                        ll ans = phi;
                        ll m = sqrt((double)phi);
                        bool flag = false;
                        for(int i = 1; i <= m; i++){//直接枚举前根号phi个phi的因子
                                if(phi % i == 0 && q_pow(10,i,p) == 1){
                                        ans = i;
                                        flag = true;
                                        break;
                                }
                        }
                        if(!flag){//找不到的话再去枚举后面的
                                for(int i = m; i >= 2; i--){
                                        if(phi % i == 0 && q_pow(10,phi/i,p) == 1){
                                                ans = phi / i;
                                                break;
                                        }
                                }
                        }
                        printf("Case %d: %lld\n",++cas,ans);
                }
        }
        return 0;
}
阿里云 Docker 镜像加速收费后:这些免费替代方案值得收藏 阿里云Docker镜像加速服务收费后,国内开发者急需免费替代方案。本文推荐2025年仍可用的7个免费镜像源,包括轩辕镜像、DaoCloud、网易云等,并提供多源配置方案以提高稳定性。建议开发者在CI/CD环境中配置多个镜像源,避免构建失败。文章还提供了详细的配置步骤和使用建议,适合个人和团队开发者参考。 阅读详情

相关推荐

EMQX 结合MySQL实现精细化ACL权限管理实战

本文详细介绍了如何通过EMQX结合MySQL实现精细化的ACL权限管理,提升物联网设备接入和消息传输的安全性。内容包括环境准备、基础配置、权限规则设计技巧以及高级应用与性能优化方案,帮助开发者快速掌握动态生效、便于管理的权限控制方法。

weixin_28683689的博客 196

POJ-3696 欧拉定理 公式推导

题目链接:https://vjudge.net/problem/POJ-3696 题目大意:给定一个数L,问是否存在这样的kL=88...888,求最小的全是8的数的长度,如果无法构造,输出0 题解思路: 全是8的数可以表示为   分离分母之后等式变为:   而是99999这样的数,是9的倍数,要让这个等式成立,唯一分解后的L中质因子2的数量必然小于等于3,如果小于3,就把左右两式子中这部...

neuq_zsmj的博客 507

ptrade量化策略之沪深300指数增强

本策略的核心是在沪深300股票池中选股,选择的股票都是市值比较大,业绩比较好的白马股,根据市场相对位置以及基本面因子来选择股票

qq_29301281的博客 1191

poj 3696 (欧拉函数

题意: 求出由全8组成的数的最短长度,使得给定的L能整除它 思路: 整除的时候要往同余的方向想,同余的时候可以往欧拉定理相关想,容易得到9L | 8*(10^x-1),我们是希望 得到10 ^x同余1的形式,这样好解,但8和L可能有公共因子,所以两边除以个gcd(8,L),这样一来 (10 ^x-1)肯定整除9L/gcd(8,L),就好解了,由阶的性质知,答案肯定是phi(9L/gcd(8,L))的因子,枚举即可,模数的范围超过1e9,所以要写快速乘,O(1)快速乘少了个log确实快的飞起,没解的时候其实是

weixin_45539557的博客 260

离线安装vue脚手架,内网安装@vue/cli

公司开发环境使用内网,无法用外网,搭建环境的时候,发现内网系统没有安装vue脚手架,我搜了很多文章,发现他们的方法对我都不适用,然后就自己摸索,最终皇天不负有心人,终于被我安装上了,一下是我内网离线安装vue/cli的方法,希望能帮助到有需要的小伙伴! 因为npm被集成在nodejs中,而安装nodejs只需要把nodejs安装包copy到内网电脑安装就行,比较简单,这里就不多做演示。 在外网电脑上,使用npm install -g xxxx命令下载好我们所需要的各个安装包,比如: npm insta

Liberty_yes的博客 1万+

从寄存器配置到G值:一份给STM32开发者的SC7A20加速度数据换算保姆级指南

本文为STM32开发者提供SC7A20三轴加速度传感器的数据换算保姆级指南,详细解析从寄存器配置到G值转换的全过程。涵盖量程选择、输出值换算原理及优化代码实现,帮助开发者快速掌握加速度数据的物理意义转换技巧,提升运动感知系统开发效率。

weixin_29172963的博客 172

poj 3696 The Luckiest number

http://poj.org/problem?id=3696 这个题挺好,开始以为只要是素因子分解后2的幂次不超过3并且该数 / 2^x后这个数必须是11111111…… 的形式几个1就输出几,然后我脑残的写交了然后就脑残的wa 了……才发现11111……不一定都是素数。。。 正解是: 10^n =1 (mod gcd(8,l)*9*l)  满足条件最小值,个人比较懒就不证明了,就

态度决定高度 517

3. 动手运行第一个 SAP Fiori Elements 应用(ListReport 类型)

这个代理服务器能够自动监听我们 Fiori Elements 应用里向 ES5 Demo 系统发送的 OData 请求,拦截这个请求,并通过 Node.js 代码向 ES5 服务器转发,拿到响应数据后再交还给 Fiori Elements 应用。后者对自己发出的请求被代理这件事情一无所知。本文的任务是,大家按照我的介绍,在本地成功运行笔者准备的这个 Fiori Elements 应用。的错误消息, 说明大家安装的 Node.js 版本没有达到本地运行 Fiori Elements 的最低要求。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1671

POJ 3696 The Luckiest number 欧拉定理

https://vjudge.net/problem/POJ-3696 题目大意:给一个数LLL,让你找到最小的一个数xxx使得xxx是LLL的倍数且它的每一位都是888,如果存在这样的xxx,请输出它的位数,否则输出000。 思路:由888组成的数可以表示成8∗(10x−1)/98*(10^x-1)/98∗(10x−1)/9,因为LLL可以整除它,所以有:8∗(10x−1)/9=k∗L8*(10...

xiji333的博客 222

YOLO26一文弄懂 | YOLO26内容详解、网络结构解读 、yolo26.yaml配置文件详细解读与说明、YOLO26虚拟环境安装、模型训练、验证、推理参数详细解析 | 通俗易懂!入门必看系列!

YOLO26目标检测模型创新与应用指南 本文全面介绍了YOLO26目标检测模型的创新特性、网络结构及实践应用。YOLO26基于四大核心原则设计:简洁性(移除NMS后处理)、部署效率(端到端架构)、训练创新(MuSGD优化器)和任务优化(支持多种视觉任务)。模型包含五种尺寸规格,CPU推理速度提升43%,支持目标检测、实例分割、姿态估计等任务。 文章详细解析了YOLO26的网络结构(Backbone-Neck-Head三部分)和yaml配置文件,提供了从虚拟环境配置到模型训练、验证、推理的完整教程。

Ai缝合怪、助力小伙伴高效发论文 2万+

Autosar Configuration(十四)SomeIP之配置SoAd

本文主要介绍SomeIp协议栈中的SoAd在Configurator中的详细配置

king110108的专栏 2600

POJ3696:The Luckiest number (欧拉定理)

题目传送门:http://poj.org/problem?id=3696 题目大意:给出一个数LLL,请求出一个最小的数ans,使得ans全由8组成(即ans=88888……8),并且是LLL的倍数。要求输出ans的位数。多组数据。1≤L≤2∗1091≤L≤2∗1091\leq L\leq 2*10^9。 题目分析:一道很神的题,要是思路错了就走远了。 我一开始的想法是把8提出来,然...

KsCla 598

【实战教程】BMAD-METHOD 入门教程:用 AI 组建你的“七人开发团队”

简单说,BMAD-METHOD 就像一个会自己运转的“AI 软件公司”。它不是某个单一应用,而是一种AI 工作流方法论—— 把一个项目拆解成多个角色(产品、架构、前后端、测试、运维等),每个角色由一个 AI 智能体负责协作,就像你真的在带一个 7 人团队。GitHub 项目地址 👉目前 Star 数已经达到了恐怖的 20k,可见这套方法的影响力不小。BMAD-METHOD 的核心理念不是“生成代码”,而是“自动化协作”。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1624

POJ3696 The Luckiest number 欧拉函数应用

题目链接:http://poj.org/problem?id=3696 题目大意:对于给定的整数L,找出L能整除最短的全8序列的长度,做为Bob的幸运数字。 分析:我们设幸运数字是x,由题意可知,长度为x全8序列为:8/9 * (10^x-1)=L * p,即(10^x-1)=9 * L * p/8。令m=9 * L/gcd(L,8),则存在p',使9 * L * p/8=m

AC_Gibson的专栏 1465

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

POJ - 3696 The Luckiest number 【欧拉函数】

Description Chinese people think of '8' as the lucky digit. Bob also likes digit '8'. Moreover, Bob has his own lucky numberL. Now he wants to construct his luckiest number which is the minimum amo...

一定要站在自己热爱的生活里闪闪发光 3万+

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

poj3696The Luckiest number【欧拉函数】

Language: Default The Luckiest number Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 4968   Accepted: 1332 Description Chinese people think of '8' as th

走一步再走一步 779

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

「POJ3696」The Luckiest number【数论,欧拉函数】

题解 一道数论欧拉函数和欧拉定理的入门好题。 虽然我提交的时候POJ炸掉了,但是在hdu里面A掉了,应该是一样的吧。 首先我们需要求的这个数一定可以表示成(10x−1)9×8\frac{(10^x-1)}{9}\times 89(10x−1)​×8。 那么可以列出一个下面的方程 (10x−1)9×8=L×k\frac{(10^x-1)}{9}\times 8=L\times k9(10x−1)​×...

chhokmah的博客 238

POJ 3696 The Luckiest number 欧拉函数 或 BSGS

原题见POJ 3696给一个数L,问至少几个8(如88,8888,88888)可以整数L。若不能,就输出-1.首先把连续的x个8表示成8+8⋅10+8⋅102+...+8⋅10x−1=8(10x−1)10−18+8·10+8·10^2+...+8·10^{x-1}={8(10^x-1)\over 10-1} 若能整除L,则存在y,使得8(10x−1)9=Ly{8(10^x-1)\over 9}=L

Ugly Gardon 1080

POJ - 3696 The Luckiest number 欧拉函数

题目:给你一个数L,找出它的一个倍数x,使得x*L的每一位都是8,输出最小x*L的位数,不存在则输出0 思路:8*(10^k-1)/9=x*L 令r=gcd(8,L),化简 8/r*(10^k-1)=x*(9*L)/r, 因为gcd(8/r,9*L/r)=1, 所以10^k-1=0%(9*L/r) 10^k=1%(9*L/r) 由欧拉函数可以得知有解的条件为gcd(10,9*L/r)

ACVevtor的博客 390

POJ 3696 The Luckiest number(欧拉函数)

 题意:给出一个数L,现在要求一个数A,使得L|A,并且A的每一位都是8,问A的最少位数是多少。 思路: 代码: #include #include #include #include #include #include #include #include #include #include #include #define inf 0x3f3f3f3f #define Inf 0

绝望的乐园 1373

POJ3696 The Luckiest number【欧拉函数】

题目大意: 给你一个数N,问是否存在L的倍数M,且数M各个位上都由8组成,如果存在多个M,输出最小 的那个,并输出M由几个8组成。 思路: 设长度为x,由题意可知,长度为x的由8组成的数可以被L整除。形式为88…88,由于10^x-1是 长度为x、全部由9组成的数,则(10^x-1)/9*8 = L*k(k倍),即(10^x-1)*8= 9*L*k。 则(10^x-1)*8/gcd(8,L) = 9*L*k/gcd(8,L) 令p = 8/gcd(8,L) q = 9*L/gcd(8,L),则(10^x

程序员充电站(itcharge) 1033

poj 3696 The Luckiest number(欧拉函数)

poj 3696 The Luckiest number 由题有 8

yjCola 675

The Luckiest number POJ - 3696(欧拉函数)

The Luckiest number POJ - 3696 题目描述 Chinese people think of ‘8’ as the lucky digit. Bob also likes digit ‘8’. Moreover, Bob has his own lucky number L. Now he wants to construct his luckiest number wh...

FLY_WHITE的博客 245

POJ 3696 The Luckiest Number 【欧拉函数+快速幂】

Description Chinese people think of ‘8’ as the lucky digit. Bob also likes digit ‘8’. Moreover, Bob has his own lucky number L. Now he wants to construct his luckiest number which is the minimum among...

zhaohaibo的博客 448

The Luckiest number POJ - 3696 数学 欧拉函数

Chinese people think of ‘8’ as the lucky digit. Bob also likes digit ‘8’. Moreover, Bob has his own lucky number L. Now he wants to construct his luckiest number which is the minimum among all positiv...

loooooog的博客 212

POJ 3696 The Luckiest Number 欧拉函数

是否存在n能整除的m使m各位都是8。m=89(10x−1)=kn m=\frac{8}{9}(10^x-1) = kn 8⋅10x−1gcd(8,n)=9⋅kngcd(8,n) 8\cdot\frac{10^x-1}{\gcd(8,n)} = 9\cdot\frac{kn}{\gcd(8,n)} 又gcd(8gcd(8,n),ngcd(8,n))=1 gcd\left(\frac{8}{gcd

とある黄鱼のOIブログ 762
上一篇: Food Delivery ZOJ - 3469(区间dp)
下一篇: Description has only two Sentences hdu-3307(欧拉定理)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值