zoukankan      html  css  js  c++  java
  • lightoj 1014

    判断到根号n即可,另外使用dfs输出,不需要另开数组再排序。

    
    #include<cmath>
    #include<cstdio>
    int P, L, len, cnt;
    void dfs(int dep){
        if(dep > len) return;
        if(dep > L){
            if(P % dep == 0){
                if(cnt == 1) printf("%d", dep), cnt = 2;
                else printf(" %d", dep);
                dfs(dep+1);
                if(P/dep != dep && P/dep > L) {
                    if(cnt == 1) printf(" %d", P/dep), cnt = 2;
                    else printf(" %d", P/dep);
                }
            }else dfs(dep+1);
        }else {
            dfs(dep+1);
            if(P % dep == 0 && P/dep > L) {
                if(cnt == 1) printf("%d", P/dep), cnt = 2;
                else printf(" %d", P/dep);
            }
        }
    }
    int main(){
        int t, CASE(0);
        scanf("%d", &t);
        while(t--){
            scanf("%d%d", &P, &L);
            if(L >= P - L) printf("Case %d: impossible ", ++CASE);
            else {
                P -= L;
                len = sqrt(P);
                printf("Case %d: ", ++CASE);
                cnt = 1;
                dfs(1);
                printf(" ");
            }
        }

  • 相关阅读:
    简单理解Socket
    TCP/IP、Http、Socket的区别
    iOS,一行代码进行RSA、DES 、AES、MD5加密、解密
    iOS开发
    我的问题
    Windows 摄像头数据
    学习记录
    编码转换
    QString 编码转换
    参考网页
  • 原文地址:https://www.cnblogs.com/anhuizhiye/p/3933166.html
Copyright © 2011-2022 走看看