题目的意思是说给定一个数x,找到满足情况(d是x的约数,且d和x有至少一个相同的数字)d的个数,直接模拟就可以了。
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { int n,m,i,j; int ans=0; int a[10]; memset(a,0,sizeof(a)); scanf("%d",&n); m=n; while(n) { a[n%10]++; n/=10; } for(i=1;i*i<=m;i++) { if(m%i==0) { j=i; while(j) { if(a[j%10]) {ans++;break;} j/=10; } j=m/i; if(i*i!=m) while(j) { if(a[j%10]) {ans++;break;} j/=10; } } } if(m==1) printf("1\n"); else printf("%d\n",ans); return 0; }
codeforces 221B Little Elephant and Numbers,布布扣,bubuko.com
codeforces 221B Little Elephant and Numbers
原文:http://blog.csdn.net/knight_kaka/article/details/21643069