Нужно переделать код с языка С на язык С++ #include
#include
#include
using namespace std;
const int modl = 1e9 + 7;
int n;
int a[500];
int f[15050];
map total;
int main() {
scanf("%d", &n);
f[0] = 1;
for(int i = 0; i < n; i++) {
scanf("%d", a+i);
int x = a[i];
for(int j = 2; j*j <= a[i]; j++)
while (x%j == 0) {
total[j]++;
x /= j;
}
if (x > 1) total[x]++;
}
for(int i = 0; i < n; i++) {
Ольга Леонідівна Шпілінська12:08
scanf("%d", a+i);
int x = a[i];
for(int j = 2; j*j <= a[i]; j++)
while (x%j == 0) {
total[j]++;
x /= j;
}
if (x > 1) total[x]++;
}
for(int i = 0; i < n; i++) {
int sum = 0;
for(int j = 0; j <= 15000; j++)
sum = (sum + f[j]) % modl;
for(int j = 15000; j >= 0; j--) {
int nextSum = (sum - f[j]) % modl;
if (nextSum < 0) nextSum += modl;
f[j] = sum;
sum = nextSum;
}
}
long long ret = 1;
for(map ::iterator it = total.begin(); it != total.end(); it++)
ret = (ret * f[it->second]) % modl;
printf("%I64d", ret);
return 0;
}
окт рблни но ртото оьбрьн бе е ндебе е. еде е едде е ебее. ебебе рбрбе е ебюе е пбр е
оипчпмп