"在一个遥远的魔法王国,有一位叫做蜗蜗的巫师。蜗蜗有一个非常特殊的魔法能力,他可以看到数字的内在属性——每一个数字的"因数之心"。"因数之心"就是一个数字的不同因数的个数。对于每个数字,它的"因数之心"都是唯一的。\n\n蜗蜗发现,有些数字的"因数之心"是一个神奇的素数,这类数字拥有强大的魔法力量,可以帮助他对抗黑暗势力。然而,蜗蜗还是个年轻的巫师,他还不能快速确定哪些数字具有素数的"因数之心"。\n\n今天,他面临一项挑战。黑暗势力正在侵袭王国,他需要集齐足够的强大数字来保卫他的家园。他手上有一个数字 n\n,但他不确定这个数字的"因数之心"是不是一个素数。\n\n你能帮助蜗蜗吗?给定一个数字 n\n,帮助蜗蜗断这个数字的"因数之心"(即不同因数的个数)是否是一个素数。如果是就输出 T 否则就输出 F。\n\n数据输入\n一行一个十进制整数 n\n。\n\n数据输出\n一行一个字符 T 或者 F。\n\n样例输入\n16\n样例输出\nT\n样例解释\n16\n 的因数有 1,2,4,8,16\n,一共 5\n 个,5\n 是一个素数,所以输出 T。\n\n数据规模\n对于 50%\n 的数据 1≤n≤108\n; 对于 100%\n 的数据 1≤n≤1014\n;c++内容:#include \n#include \nusing namespace std;\n\n// 判断一个数是否为素数\nboolean isPrime(int num) {\n if (num < 2)\n return false;\n for (int i = 2; i <= sqrt(num); i++) {\n if (num % i == 0)\n return false;\n }\n return true;\n}\n\nint main() {\n int n;\n cin >> n;\n \n int cnt = 0; // 因数个数\n for (int i = 1; i <= sqrt(n); i++) {\n if (n % i == 0) {\n cnt++;\n if (n / i != i) // 如果不是平方数,还要计算另一个因数\n cnt++;\n }\n }\n \n if (isPrime(cnt))\n cout << "T" << endl;\n else\n cout << "F" << endl;\n \n return 0;\n}


原文地址: https://www.cveoy.top/t/topic/pBW4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录