muntasir007

Untitled

Feb 20th, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define MAX 10000000
  4. vector <int> primes;
  5. int prime[MAX];
  6. int setBit( int n, int position ) {
  7. n = n | ( 1 << position );
  8. return n;
  9. }
  10. bool checkBit(int n, int position) {
  11. return n & ( 1 << position );
  12. }
  13. void primeGenerator( int n ) {
  14. int x = sqrt( n );
  15. primes.push_back(2);
  16. prime[0] = setBit( prime[0], 0 );
  17. prime[0] = setBit( prime[0], 1 );
  18. for( int i = 4; i <= n; i += 2 )
  19. prime[ i >> 5 ] = setBit( prime[ i >> 5 ], i & 31 );
  20. for( int i = 3; i <= x; i += 2 ) {
  21. if( !checkBit( prime[ i >> 5 ], i & 31 ) ) {
  22. primes.push_back(i);
  23. for( int j = i+i; j <= n; j += i )
  24. prime[ j >> 5 ] = setBit( prime[ j >> 5 ], j & 31 );
  25. }
  26. }
  27. return;
  28. }
  29. int main() {
  30. primeGenerator(10000000);
  31. int T;
  32.  
  33. scanf("%d", &T);
  34. int cs;
  35.  
  36. for (cs=1; cs<=T; cs++) {
  37. vector <int> ber;
  38. vector <int> aer;
  39. long long int a, b;
  40. scanf("%lld %lld", &a, &b);
  41. long long int i;
  42. for (i=0; primes[i]*primes[i] <= b; i++) {
  43. if (b % primes[i] == 0) {
  44. while (b%primes[i] == 0) {
  45. ber.push_back(primes[i]);
  46. b/=primes[i];
  47. }
  48. }
  49. }
  50. if (b>=2) ber.push_back(b);
  51. for (i=0; primes[i]*primes[i] <= a; i++) {
  52. if (a % primes[i] == 0) {
  53. while (a%primes[i] == 0) {
  54. aer.push_back(primes[i]);
  55. a/=primes[i];
  56. }
  57. }
  58. }
  59. if (a>=2) aer.push_back(a);
  60.  
  61. }
  62. return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment