Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- int maxv = 2;
- int maxp = 1;
- int n, x, aux, ant, viit;
- int p[1000000], k = 1;
- int prim[1000000];
- int r;
- void inmultire(int n)
- {
- viit = p[1]*n;
- for (int j=1; j<=k; j++)
- {
- ant = viit;
- p[j+1] = p[j+1] * n;
- if (ant >= 10)
- {
- p[j+1] += ant/10;
- }
- viit = p[j+1];
- p[j] = ant%10;
- }
- if (p[k+1] != 0)
- {
- k++;
- while (p[k] >= 10)
- {
- k++;
- p[k] = p[k-1]/10;
- p[k-1] %= 10;
- }
- }
- }
- void primus(int n)
- {
- int d = 2, p = 1;
- if (n%2 == 0)
- {
- inmultire(2);
- }
- d++;
- while (d <= n)
- {
- if (n%d == 0)
- {
- p = 2;
- inmultire(d);
- while (n%d==0)
- {
- n /= d;
- }
- }
- d+=2;
- }
- if(p == 1)
- {
- inmultire(n);
- }
- }
- ifstream fin("date.in");
- ofstream fout("date.out");
- int main()
- {
- cin >> n;
- p[1] = 1;
- prim[1] = 2;
- for (int i=1; i<=n; i++)
- {
- cin >> x;
- primus(x);
- /*for (int j=1; j<=k; j++)
- {
- ant = viit;
- p[j+1] = p[j+1] * r;
- if (ant >= 10)
- {
- p[j+1] += ant/10;
- }
- viit = p[j+1];
- p[j] = ant%10;
- }
- if (p[k+1] != 0)
- {
- k++;
- while (p[k] >= 10)
- {
- k++;
- p[k] = p[k-1]/10;
- p[k-1] %= 10;
- }
- }*/
- /* for (int i=k; i>=1; i--)
- {
- cout << p[i];
- }
- cout << " " << k << endl << endl << endl;*/
- }
- for (int i=k; i>=1; i--)
- {
- cout << p[i];
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment