杰哥和数字
★实验任务
杰哥特别喜欢和数字打交道,现在他有一个正整数 N,他想知道有多少个满足要求的正整数 D 存在,要求是 D 是 N 的因子,并且 D 和 N 至少有一位相同。
★数据输入
只有一行,一个正整数 N。(N<=1000000000)。
对于 30%的数据,N<=100
对于 50%的数据,N<=200
对于 100%的数据,N<=1000000000
★数据输出
只有一行,一个整数表示满足要求的数字 D 的个数。
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int n,d,i,j=0;
cin>>n;
int num[11]={0};
int n_l=n;
while(n_l)
{
num[n_l%10]++;
n_l=n_l/10;
}
for(i=1;i<=sqrt(n);i++)
{
if(n%i==0)
{
int num1[11]={0};
n_l=i;
while(n_l)
{
num1[n_l%10]++;
n_l=n_l/10;
}
for(j=0;j<11;j++)
{
if(num[j]!=0&&num1[j]!=0)
{
d++;break;
}
}
if(i!=sqrt(n))
{
int num2[11]={0};
n_l=n/i;
while(n_l)
{
num2[n_l%10]++;
n_l=n_l/10;
}
for(j=0;j<11;j++)
{
if(num[j]!=0&&num2[j]!=0)
{
d++;break;
}
}
}
}
}
cout<<d;
return 0;
}