ZOJ3622 Magic Number(水题)

2015-01-27 06:24:41 · 作者: · 浏览: 9

分析:

举个例子xxx(三位数)为魔力数,则xxx|(xxx+1000*y),那么xxx|1000,这个就是结论

同理:四位数xxxx|10000,五位数xxxxx|100000

代码:

#include
  
   
#include
   
     #include
    
      #include
      #include
      
        #include
       
         #include
        
          typedef long long LL; using namespace std; const int maxn=600005; LL p[maxn]; int main() { LL a,b; while(~scanf("%lld%lld",&a,&b)) { LL cnt=0; for(LL i=10;i<1000000000000;i*=10) { for(LL j=10;j>1;j--) if(i%j==0&&i/j>=i/10)p[cnt++]=i/j; } sort(p,p+cnt); LL ans=upper_bound(p,p+cnt,b)-lower_bound(p,p+cnt,a); printf("%lld\n",ans); } return 0; }