codeM美团编程大赛初赛B轮D题(考验你的数学思维!)
[编程题] 模
时间限制:1秒
空间限制:32768K
给定四个正整数a,b,c,k,回答是否存在一个正整数n,使得a*n在k进制表示下的各位的数值之和模b为c。
输入描述:
第一行一个整数T(T <= 5,000)。
接下来T行,每行四个正整数a,b,c,k(1 ≤ a ≤ 10^18; 2 ≤ k ≤ 10^18; 0 ≤ c < b ≤ 10^18)表示一个询问,所有输入都是十进制的。
输出描述:
对于每组数据输出一行,Yes表示存在,No表示不存在。
输入例子:
2
3 9 5 10
7 3 1 10
输出例子:
No
Yes
这其实是一道数学题,核心代码为
下面先上正确代码,证明过程暂时不会,还望各位路过大佬不吝赐教。
1 #include <iostream> 2 using namespace std; 3 4 //返回x和y的最大公约数 5 long long gcd(long long x, long long y) 6 { 7 long long z = y; 8 while(x%y!=0) 9 { 10 z = x%y; 11 x = y; 12 y = z; 13 } 14 return z; 15 } 16 17 int main() 18 { 19 int T; 20 cin>>T; 21 while(T--) 22 { 23 long long a,b,c,k; 24 cin>>a>>b>>c>>k; 25 if(c%gcd(b,gcd(a,k-1))==0) 26 cout<<"Yes"<<endl; 27 else 28 cout<<"No"<<endl; 29 } 30 return 0; 31 }
这题挺有意思。。。证明过程会及时补充。
特意备注:扩展欧几里得
20170627更新,以下是walker大佬的解答
『注:本文来自博客园“小溪的博客”,若非声明均为原创内容,请勿用于商业用途,转载请注明出处http://www.cnblogs.com/xiaoxi666/』
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)