我绑定了UVA账号,但Waiting了一个月,有谁帮我测试一下
查看原帖
我绑定了UVA账号,但Waiting了一个月,有谁帮我测试一下
222057
joy2010WonderMaker楼主2021/3/9 08:25
#include<cstdio>
#include<cmath>
bool is_prime(int n){
    if(n%2==0){
        return false;
    }
    for(int i=3;i<n;i+=2){
        if(n%i==0){
            return false;
        }
    }
    return true;
}
int main(){
    long long temp=1;
    while(1){
    	long long n;
        scanf("%lld",&n);
        if(n==0){
            return 0;
        }else{
            int q=floor(sqrt(n));
            int m=n/q;
            if(q*m==n){
                printf("Case %lld: %d\n",temp,q+m);
            }else{
                if(is_prime(n)){
                    printf("Case %lld: %d\n",temp,n+1);
                }else{
                    m++;
                    for(int i=1;i<n;i++){
                        q--;
                        m++;
                        if(q*m==n){
                            printf("Case %lld: %d\n",temp,q+m);
                        }
                    }
                }
            }
        }
        temp++;
    }
    return 0;
}
2021/3/9 08:25
加载中...