这是一道找规律的数学题
有4,9,16,25......完全平方数
那么每把一个1变为完全平方数对于总和大小的增量依次为3,8,15,24......
就比如
1->4->7->10->13->16
1->9->17->25->......
特殊一点增量混合:1->9->12->15->......
发现了一个天大的密码,15,16,17是三个连续的数,那么以这三个数为基准增量为3能覆盖了15后面所有的数
即大于等于15就输出Yes
那么只要再处理数1~14即可
在1~14的增量最多也就是3,那么判断当前数减去4或9后能被3整除就输出Yes,否则输出No,1作为特殊输出Yes
---数学题太难了,根本看不出来,我只能想到增量为3并且取余,根本没看出来有连续的三个数呜呜呜。。。---
#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve(){
int n;
cin>>n;
if(n>=15){
cout<<"Yes"<<endl;
}else if(n==1||(n>=4&&((n-4)%3==0))||(n>=9&&((n-9)%3==0))){
cout<<"Yes"<<endl;
}else cout<<"No"<<endl;
}
signed main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int t;
cin>>t;
while(t--){
solve();
}
return 0;
}

京公网安备 11010502036488号