Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <iostream>
- #include <stdio.h>
- #include <cstring>
- #include <vector>
- #include <algorithm>
- #include <utility>
- #include <queue>
- #include <map>
- #include <stack>
- #include <cmath>
- #include <set>
- #include <ctype.h>
- #include <bitset>
- #define INF 99999999
- #define rep(i, a, b) for (int i = int(a); i < int(b); i++)
- #define TRvii(c, it) for (vii::iterator it = (c).begin(); it != (c).end(); it++)
- #define tr(it, s) for ( typeof ( s.begin( ) ) it=s.begin( ); it!=s.end( ); it++ )
- #define pb push_back
- #define clr(a) memset((a),0,sizeof(a))
- #define pi 3.1415926535897932384626433832795028841971
- #define debug(x) cout << #x << " = " << x << endl;
- using namespace std;
- typedef long long ll;
- typedef pair < int, int > ii;
- typedef vector < int > vi;
- typedef vector < ii > vii;
- int p[20000]; int e[20000]; int k;
- int prime[200000]; int nprimes;
- void factor(int n) {
- k = 0;
- for(int j=0; prime[j]*prime[j] <= n; ++j) if ( n%prime[j]==0 ) {
- p[k] = prime[j]; e[k] = 0;
- while ( n%prime[j]==0 ) { n/=prime[j]; e[k]++; }
- ++k;
- }
- if (n!=1) { p[k]=n; e[k] =1; ++k;}
- }
- void find_primes(int n) {
- nprimes = 1; prime[0] = 2; bool is_prime;
- for(int k=3;k<=n;k+=2) {
- is_prime = true;
- for(int j=0; j<nprimes && prime[j]*prime[j] <= k;++j)
- if (k%prime[j] == 0) {is_prime = false; break;}
- if ( is_prime ) prime[nprimes++] = k;
- }
- }
- int main(){
- find_primes(100);
- factor(99);
- rep(i,0,k+1)
- cout<<p[i]<<"^"<<e[i]<<endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment