本文主要是介绍PTA_乙级_1096,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Q1:因数
在数学中,一个数的因数是能够整除该数的整数。换句话说,如果我们将一个数 a 除以另一个整数 b 而得到整数商,那么 b 就是 a 的因数。以下是一些例子:
1.因数的定义:
如果整数 b 可以被整数 a 整除,那么 b 是 a 的因数。
2.举例:
3.对于数 12,它的因数包括 1、2、3、4、6 和 12,因为它们能够整除 12。
4.对于数 8,它的因数包括 1、2、4 和 8。
5.对于负数 -6,它的因数包括 -1、2、3 和 -6。
6.特殊情况:所有整数都有两个特殊的因数,即 1 和它自身。和负数的因数的定义也是相同的,即能够整除它们的整数。
因数在数学和实际问题中有着重要的应用,例如在分解整数、求最大公约数、解方程等方面。
#include <iostream>
#include <vector>
using namespace std;int main() {int n;cout << "Enter a positive integer: ";cin >> n;vector<int> v;// 因为 n 的因数都是成对出现,所以枚举较小的那个因数for (int i = 1; i <= n / i; i++) {if (n % i == 0) {v.push_back(i);// 当两个因数不同时,才全部添加if (i != n / i) v.push_back(n / i);}}cout << "Factors of " << n << " are: ";for (int factor : v) {cout << factor << " ";}cout << std::endl;return 0;
}
#include <iostream>
#include <vector>
using namespace std;
bool check(int n) {//因为不确定n因数的个数, 所以我们可以用不定长数组来存储vector<int> v;//因为n 的因数都是成对出现, 所以我们可以枚举较小的那个因数, //随后 用 n / i表示另一个因数for (int i = 1; i <= n / i; i++) {if (n % i == 0) {v.push_back(i);//当两个因数不同时,才全部添加if (i != n / i) v.push_back(n / i);}}//遍历每个因数if (v.size() < 4) return false;for (int i = 0; i < v.size(); i++)for (int j = i + 1; j < v.size(); j++)for (int l = j + 1; l < v.size(); l++)for (int r = l + 1; r < v.size(); r++)if ((v[i] + v[j] + v[l] + v[r]) % n == 0) return true;return false;}
int main() {int n;cin >> n;for (int i = 0; i < n; i++) {int x;cin >> x;//使用三元表达式来简化输入输出// 若函数返回 true 则打印 Yes// 反之打印 Nocout << (check(x) ? "Yes" : "No");if (i != n - 1)cout << endl;}
}
求 4 个不同正因数之和用四个for循环即可
这篇关于PTA_乙级_1096的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!