解题思路:本质上就是判断是否n%i==i-1,1<=i<=m。
注意事项:
参考代码:
#include<bits/stdc++.h>//时间复杂度O(T)
using namespace std;
int main(){
int T;
scanf("%d",&T);
while(T--){
int n,m;
scanf("%d%d",&n,&m);
bool flag=true;
for(int i=2;i<=m;i++){//重点是这个循环会循环多少次,根据中国剩余定理的变形
//当n==0(mod 1)
// n==1(mod 2)
// ......
// n==22(mod 23)时,n最小为535354228879,超出了10^9,所以这个循环在本题最多循环23次就能判断出结果(也就是m>=23时,必然输出Yes)
if(n%i!=i-1){
flag=0;
break;
}
}
if(flag)puts("No");
else puts("Yes");
}
}
0.0分
1 人评分
C语言训练-舍罕王的失算 (C语言代码)浏览:1054 |
汽水瓶 (C语言代码)浏览:664 |
printf基础练习2 (C语言代码)浏览:955 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:693 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:467 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:913 |
K-进制数 (C语言描述,蓝桥杯)浏览:955 |
字符逆序 (C语言代码)浏览:675 |
陶陶摘苹果2 (C语言代码)浏览:651 |
排序算法(选择,插入,冒泡)浏览:876 |
已退役 2024-01-08 08:20:56 |
cin本来就比scanf慢很多,打算法比赛用cin一般都要main函数第一行有一个关流的语句,我退圈了,有点忘了咋写了