找出输入数据中所有两两相乘的积为12!的个数。
输入样例:
1 10000 159667200 9696 38373635
1000000 479001600 3 1 479001600
输出样例:
3
有3对:
1 479001600
1 479001600
3 159667200
#include<iostream>
#include<fstream>
#include<vector>
#include<set>
using namespace std;int main(){int f12 = 1;for(int i = 1; i <= 12; ++i)f12 *= i;ifstream cin("data.txt");vector<int> v;int num = 0;while(cin >> num){if (f12 % num == 0)//如果是f12的因子则加入数组v.push_back(num); }int count = 0;for(int i = 0; i < v.size(); ++i){if (v[i] == 0)continue; for(int j = i + 1; j < v.size(); ++j){if (v[j] == 0)continue;if(v[i]*v[j] == f12){//如果相乘的f12,则把对应下标j的值置0,代表已经将它选中了,并将记录组数的值count加1。++count;v[j] = 0; break;}}}cout << count;return 0;
}