hdu 6108 小C的倍数问题(同余定理)
2017-08-14 08:50
260 查看
小C的倍数问题
为什么在10进制下,一个数各个数位上的和是3的倍数那么这个数就是3的倍数?
先看两位数ab,
ab%3=0
即(a∗10+b)%3=0
即(a∗9+(a+b))%3=0
9%3肯定是=0的,那么只要(a+b)%3=0,这个数就是3的倍数
再来看三位数abc,
abc%3=0
即(a∗100+b∗10+c)%3=0
即(a∗99+b∗9+(a+b+c))%3=0
99和9取余3肯定都是等于0的,因此只要(a+b+c)%3=0,这个数就是3的倍数
…….
看出规律没,就是说在n进制下,只要n-1取余一个数x等于0,那么只要一个数各个数位上的和是x的倍数,这个数就是x的倍数
所以我们只需要找出n-1的因子个数即可
代码:
#include<bits/stdc++.h> using namespace std; int main() { int t,n; scanf("%d",&t); while(t--) { scanf("%d",&n); d2ef n-=1; int ans=2; for(int i=2;i*i<=n;++i) { if(n%i==0) ans+=2; if(i*i==n) --ans; } printf("%d\n",ans); } return 0; }
相关文章推荐
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- hdu 6108 小C的倍数问题(同余定理)
- 【HDU 6108 小C的倍数问题】 数学
- HDU 6108 2017 百度之星 初赛A 1001 小C的倍数问题
- 【同余】HDU 6108 小C的倍数问题
- HDU 6108 小C的倍数问题【】
- hdu 6108 小C的倍数问题【一个数的因子个数】