1.19杰哥和数字
★实验任务
杰哥特别喜欢和数字打交道,现在他有一个正整数 N,他想知道有多少个满足要求的正整数 D 存在,要求是 D 是 N 的因子,并且 D 和 N 至少有一位相同。
★数据输入
只有一行,一个正整数 N。(N<=1000000000)。
对于 30%的数据,N<=100
对于 50%的数据,N<=200
对于 100%的数据,N<=1000000000
★数据输出
只有一行,一个整数表示满足要求的数字 D 的个数。
★输入示例
10
输出示例
2
解题代码:
#include<bits/stdc++.h>
using namespace std;
bool dm[11];
void init(int n)
{
while(n>0)
{
dm[n%10]=true;
n=n/10;
}
}
int judge(int k)
{
while(k>0)
{
if(dm[k%10])
{
return 1;
}
k=k/10;
}
return 0;
}
int main()
{
int n;
int ans=0;
cin>>n;
memset(dm,false,sizeof(dm));
init(n);
for(int i=1;i<=sqrt(n);i++)
{
if(n%i==0)
{
if(judge(i)==1)
ans++;
if(n!=i*i)
{
if(judge(n/i)==1)
ans++;
}
}
}
cout<<ans<<endl;
return 0;
}
浙公网安备 33010602011771号