大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题提高组是为了有余力的同学准备的,让大家练到各种各样的题目,一年以后,蜕变成为一个不一样的自己!
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
❤️ :热爱C/C++与算法学习,云计算等,期待一起交流!
🙏作者水平有限,如果发现错误,求告知,多谢!
👻高校算法学习社区:https://bbs.csdn.net/forums/Suanfa
一起加入刷题内卷大军,还可以加入专属内卷群,里面福利多多大佬多多!
目录
今日题目:模 (nowcoder.com)
题目描述
给定四个正整数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表示不存在。
题目分析
题目难度:⭐️⭐️
题目涉及算法:数论,gcd。
ps:有能力的小伙伴可以尝试优化自己的代码或者一题多解,这样能综合提升自己的算法能力
题解报告:
1.思路
去看p佬详细题解就好,我自己讲解的不好 p佬完美题解
2.代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
long long gcd(long long a,long long b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int t;
cin>>t;
while(t--)
{
long long a,b,c,d;
cin>>a>>b>>c>>d;
if(c%gcd(gcd(a,d-1),b)==0)
{
cout<<"Yes"<<endl;
}
else
{
cout<<"No"<<endl;
}
}
return 0;
}