hdu 6108 小C的倍数问题(同余定理)
2017-08-14 08:50
225 查看
小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 小C的倍数问题
- HDU 6108 小C的倍数问题【2017"百度之星"】【数论】
- HDU 6108 小C的倍数问题(数学 推公式)
- 2017"百度之星"程序设计大赛 - 初赛(A) [ hdu 6108 小C的倍数问题 ] [ hdu 6109 数据分割 ] [ hdu 6110 路径交 ] [ hdu 6112 今夕何夕 ] [ hdu 6113 度度熊的01世界 ]