杰哥和数字
★实验任务
杰哥特别喜欢和数字打交道,现在他有一个正整数 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;
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号