在此输入标题
2026-03-01 21:29:36
发布于:上海
46阅读
0回复
0点赞
注意到 ,这是一个很小的值域限制,可以考虑枚举。
枚举因数即可,时间复杂度 。
#include <bits/stdc++.h>
using namespace std;
#define chmax(a,b) ((a)=max((a),(b)))
#define chmin(a,b) ((a)=min((a),(b)))
typedef long long ll;
ll T,n;
int S(ll x){
int ans=0;
while(x)ans+=x%10,x/=10;
return ans;
}
int main(){
cin>>T;
while(T--){
cin>>n;
ll ans=0;
for(int d=1;d<=90;d++){
ll m=n-d;
for(ll i=1;i*i<=m;i++){
if(m%i==0){
if(n%i==d&&S(i)==d)ans++;
if(i*i!=m){
if(n%(m/i)==d&&S(m/i)==d)ans++;
}
}
}
}
cout<<ans<<endl;
}
return 0;
}
全部评论 3
%%%
5天前 来自 江苏
0orz
5天前 来自 广东
0ddd
5天前 来自 广东
0











有帮助,赞一个