1 条题解

  • 0
    @ 2019-11-09 11:27:59

    std

    #include <stdio.h>
    
    int T, n, i, ans;
    
    void dfs(int last, int lft) {
        //printf("dfs(last=%d, lft=%d)\n", last, lft);
        if(lft==1) { ans++; return; }
        else {
            int i;
            for(i = last; i <= lft; i++) if(lft%i == 0) dfs(i, lft/i);
        }
    }
    
    int main() {
        scanf("%d", &T);
        while(T--) {
            scanf("%d", &n);
            ans = 0;
            for(i = 2; i <= n; i++) if(n%i == 0) dfs(i, n/i);
            printf("%d\n", ans);
        }
        return 0;
    }
    
  • 1

信息

ID
1031
难度
7
分类
(无)
标签
(无)
递交数
63
已通过
12
通过率
19%
上传者