题目描述题目描述给定两个整数 ��SP问是否有正整数对 ��xy使得�×�=�x×y=S 且 2×�+�=�2×x+y=P如果有则输出 Yes并在第二行输出满足 �x 最小的两个整数否则则输出 No输入格式第一行两个整数 ��SP中间用空格隔开输出格式第一行一个字符串 Yes 或 No 表示是否有满足条件的整数对如果第一行为 Yes 则在第二行输出 �x 最小的这整数对中间用空格隔开。如果第一行为
#include
int main() { int S, P; cin >> S >> P; int x = sqrt(P); while (x >= 1) { int y = P / x; if (x * y == P && 2 * (x + y) == S) { cout << "Yes" << endl; cout << x << " " << y << endl; return 0; } x--; } cout << "No" << endl; return 0; }
原文地址: https://www.cveoy.top/t/topic/ixVk 著作权归作者所有。请勿转载和采集!