C++ 寻找正整数对满足乘积和倍数关系
#include\u0020
bool\u0020isInt(int\u0020num)\u0020{\u0020//\u0020判断一个数是否为整数 \u0020\u0020return\u0020(num\u0020==\u0020floor(num)); }
int\u0020main()\u0020{ \u0020\u0020int\u0020S, P; \u0020\u0020cin\u0020>>\u0020S\u0020>>\u0020P;
\u0020\u0020bool\u0020flag\u0020=\u0020false; \u0020\u0020int\u0020x, y;
\u0020\u0020for\u0020(int\u0020i\u0020=\u00201; i\u0020<=\u0020sqrt(S); i++)\u0020{ \u0020\u0020\u0020\u0020if\u0020(S\u0020% i\u0020==\u00200)\u0020{\u0020//\u0020i是S的一个因子 \u0020\u0020\u0020\u0020\u0020\u0020int\u0020j\u0020=\u0020S\u0020/ i; // j是另一个因子 \u0020\u0020\u0020\u0020\u0020\u0020if\u0020(2 * (i + j) == P)\u0020{\u0020//\u0020满足2 * (x + y) = P \u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020flag\u0020=\u0020true; \u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020x\u0020=\u0020min(i, j); //\u0020取较小的因子作为x \u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020y\u0020=\u0020max(i, j); //\u0020取较大的因子作为y \u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020break; \u0020\u0020\u0020\u0020\u0020\u0020} \u0020\u0020\u0020\u0020} \u0020\u0020}
\u0020\u0020if\u0020(flag)\u0020{ \u0020\u0020\u0020\u0020cout\u0020<<\u0020"Yes"\u0020<<\u0020endl; \u0020\u0020\u0020\u0020cout\u0020<<\u0020x\u0020<<\u0020" "\u0020<<\u0020y\u0020<<\u0020endl; \u0020\u0020} else { \u0020\u0020\u0020\u0020cout\u0020<<\u0020"No"\u0020<<\u0020endl; \u0020\u0020}
\u0020\u0020return\u00200; }
原文地址: http://www.cveoy.top/t/topic/qeI7 著作权归作者所有。请勿转载和采集!