알고리즘 설계 및 분석, 디지털 1.3 Jiege

★ 제목 설명

특히 숫자의 사람처럼 Jiege, 그리고 지금은 양의 정수 X를 가지고, 그는 양의 정수 D의 존재의 요구 사항, D는 X 팩터입니다 필요합니다 얼마나 많은 대회 알고 싶어하고, D 및 X는 동일 하나 이상을 가지고있다.

★ 입력 형식

하나 개의 라인, 양의 정수 X.

데이터의 30 %, X <= 100.

데이터의 50 %를, X <= 200.

데이터의 100 %로, X <= 1,000,000,000.

★ 출력 형식

하나 개의 라인, 정수가 디지털 D.의 만족 요구 사항

★ 샘플 입력

(10)

★ 샘플 출력

/*
因子就是所有可以整除这个数的数,但是不包括这个数自身.

先搜索是因子的整数,再判断是否有重复数字 (v)
先搜索重复数字整数,再判断是否为因子 (x)
*/
#include<bits/stdc++.h>
int book[10]={0};

int isbaohan(int a){
    while(a!=0){ 
        if(book[a%10]) return 1;
        a=a/10;
    }   
    return 0;
}

int main(){
    int X; 
    scanf("%d",&X);
    
    
    int n=X;
    while(n!=0){
        book[n%10]=1;
        n=n/10;
    }
    
//  for(int j=0; j<10; ++j){
//      printf("%d",book[j]);
//  }
    
    
    int ans = 0, a, b;
    for(int i=1; i*i<=X; ++i){
        if(X%i!=0) continue;
        a=i;
        b=X/i;
        if(a==b){
            if(isbaohan(a)) ans++;
        } else {
            if(isbaohan(a)) ans++;
            if(isbaohan(b)) ans++;
        }
    }
    printf("%d",ans);
    return 0;   
}

추천

출처www.cnblogs.com/yejifeng/p/11600208.html