最少循环法,简短!!!

广告屏幕

https://ac.nowcoder.com/acm/problem/22213

像素个数 = 长 * 宽
所以:长 , 宽 为像素个数 n 的约数
约数是成对出现的
比如 8 = 1 * 8 , 8 = 2 * 4
分析可知 约数对的重复出现在 <= 一个数的平方根

#include<iostream>
#include<cmath>
using namespace std;
int main(){
    int n;cin>>n;
    int cnt = floor(sqrt(n));//获得最中间的约数
    //从最中间开始寻找宽
    while(1){
        if(n % cnt == 0) break;
        cnt--;
    }
    //长可根据宽求出
     cout<<cnt<<" "<<n/cnt;
    return 0;
}
全部评论
牛啊牛啊
点赞 回复 分享
发布于 2021-10-17 09:20

相关推荐

xdu通信dddd:我小米都面完两个月了 八月底面完的,现在还是显示面试中,没有比我恐怖的
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务