Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Examples:
Bàn luận A = 6, B = 12
Output: 2 3
2 and 3 are the only common prime divisors of 6 and 12
Input: A = 4, B = 8
Output: 2
Đưa ra hai số nguyên & nbsp; và & nbsp ;, Nhiệm vụ là tìm các ước số chính của các số này.Examples: & nbsp; & nbsp; Iterate from 1 to min[A, B] and check whether i is prime and a factor of both A and B, if yes then display the number.
Efficient Approach is to do
following:
- Đầu vào: a = 6, b = 12 & nbsp; đầu ra: 2 3 & nbsp; 2 và 3 là các ước số chính duy nhất của 6 và 12input: a = 4, b = 8 & nbsp; đầu ra: 2 & nbsp; & nbsp;
- Cách tiếp cận ngây thơ: Lặp lại từ 1 đến tối thiểu [a, b] và kiểm tra xem tôi có phải là nguyên tố và hệ số cả A và B hay không, nếu có thì hãy hiển thị cách tiếp cận số.
Tìm ước số chung lớn nhất [GCD] của các số đã cho. The above solution can be further optimized if there are multiple queries for common factors. The
idea is based on Prime Factorization using Sieve O[log n] for multiple queries.
Below is the implementation of the above approach:
C++
#include
Tìm các yếu tố chính của GCD.
#define MAXN 100001
Cách tiếp cận hiệu quả cho nhiều truy vấn: Giải pháp trên có thể được tối ưu hóa hơn nữa nếu có nhiều truy vấn cho các yếu tố phổ biến. Ý tưởng này dựa trên yếu tố chính bằng cách sử dụng Sieve O [log n] cho nhiều truy vấn. Truy vấn là việc thực hiện phương pháp trên: & nbsp; & nbsp;
using
namespace
std;
{
bool
prime[MAXN];
using
0using
8using
9namespace
0
using
0namespace
2using
9namespace
0
void
SieveOfEratosthenes[]
____10using
1__12
using
0____26 namespace
7namespace
8 namespace
9
#define MAXN 100001
0#define MAXN 100001
1using
9namespace
0
std;
0#define MAXN 100001
5
using
0#define MAXN 100001
5
#define MAXN 100001
5
std;
0std;
1 std;
2using
3std;
4
{
std;
5namespace
6 namespace
7namespace
8 std;
9
void
bool
0namespace
8 bool
2namespace
8 bool
4
using
0namespace
8 bool
8
std;
5prime[MAXN];
8prime[MAXN];
9namespace
0
std;
0#define MAXN 100001
5
using
0#define MAXN 100001
5
#define MAXN 100001
5
using
0____26 namespace
7namespace
8 prime[MAXN];
3
{
using
0SieveOfEratosthenes[]
0
std;
0std;
1 prime[MAXN];
6
using
0SieveOfEratosthenes[]
5
namespace
8 void
7
#define MAXN 100001
5
using
0namespace
8 SieveOfEratosthenes[]
3
using
0SieveOfEratosthenes[]
7 SieveOfEratosthenes[]
8
Java
{
0 {
1
{
2 {
3 namespace
8 {
5{
6namespace
0
{
2 {
9 using
00using
01 {
9____103
{
2 void
SieveOfEratosthenes[]
std;
5using
16using
3namespace
0
using
0using
20using
13using
22using
9namespace
0
using
0using
20using
27using
22using
9namespace
0
{
____10using
1__12
using
0____26 namespace
7namespace
8 namespace
9
#define MAXN 100001
0#define MAXN 100001
1using
9namespace
0
std;
0#define MAXN 100001
5
using
0#define MAXN 100001
5
#define MAXN 100001
5
std;
0std;
1 std;
2using
3std;
4
{
std;
5namespace
6 namespace
7namespace
8 std;
9
void
bool
0namespace
8 bool
2namespace
8 bool
4
using
0namespace
8 bool
8
std;
5using
83prime[MAXN];
9using
85
std;
0#define MAXN 100001
5
using
0#define MAXN 100001
5
#define MAXN 100001
5
using
0____26 namespace
7namespace
8 prime[MAXN];
3
using
98
std;
0std;
1 prime[MAXN];
6
namespace
8 void
7
using
0namespace
8 SieveOfEratosthenes[]
3
#define MAXN 100001
5
using
0SieveOfEratosthenes[]
7 SieveOfEratosthenes[]
8
using
0SieveOfEratosthenes[]
0
Java
using
0SieveOfEratosthenes[]
5
using
0#define MAXN 100001
5
#define MAXN 100001
5
Python3
{
0 {
1
{
2 {
3 namespace
8 {
5{
6namespace
0
{
2 {
9 using
00using
01 {
9____103
{
2 void
SieveOfEratosthenes[]
{
std;
0namespace
6namespace
7namespace
8 using
12using
13using
14
____10namespace
6 namespace
7namespace
8 using
35using
36using
37
std;
5namespace
6 namespace
7namespace
8 using
47
{
2 void
bool
0namespace
8 bool
2namespace
8 bool
4
____10namespace
8 using
67namespace
8using
69
____10namespace
6 namespace
7namespace
8 using
12using
36using
76
std;
0std;
1 using
79using
13std;
4
{
2 using
92 using
93using
92 bool
2using
92 using
97
____10std;
1 namespace
01using
13namespace
03
std;
0SieveOfEratosthenes[]
7 namespace
06
using
0SieveOfEratosthenes[]
using
0SieveOfEratosthenes[]
7 namespace
09
using
0std;
42
C#
using
std;
44
namespace
12 {
0 {
1
using
0{
2 bool
std;
51using
01 bool
std;
54
using
0{
2 void
SieveOfEratosthenes[]
using
0{
std;
5namespace
6namespace
7namespace
8 std;
65
#define MAXN 100001
0using
16using
3namespace
0
std;
0using
8using
9namespace
0
std;
0namespace
2using
9namespace
0
std;
0____26 namespace
7namespace
8 std;
82
std;
5std;
1 std;
2using
3std;
4
#define MAXN 100001
0namespace
6 namespace
7namespace
8 std;
92
std;
93#define MAXN 100001
1using
9namespace
0
std;
5#define MAXN 100001
5
std;
0#define MAXN 100001
5
using
0#define MAXN 100001
5
using
0{
2 void
bool
0namespace
8 bool
2namespace
8
using
0{
std;
0____28 using
67namespace
8using
69
std;
0____26 namespace
7namespace
8 prime[MAXN];
3
std;
5std;
1 prime[MAXN];
6
#define MAXN 100001
0#define MAXN 100001
27prime[MAXN];
9using
85
std;
5#define MAXN 100001
5
std;
0#define MAXN 100001
5
using
0#define MAXN 100001
5
using
0{
2 using
92 using
93using
92
using
0using
98
std;
0std;
1 #define MAXN 100001
48
std;
5SieveOfEratosthenes[]
7 namespace
06
std;
0SieveOfEratosthenes[]
7 namespace
09
using
0#define MAXN 100001
5
____10namespace
12 {
2 void
#define MAXN 100001
61
using
0SieveOfEratosthenes[]
0
using
0namespace
8 SieveOfEratosthenes[]
3
using
0SieveOfEratosthenes[]
5
using
0#define MAXN 100001
5
#define MAXN 100001
5
JavaScript
#define MAXN 100001
72
#define MAXN 100001
73
#define MAXN 100001
74using
01 #define MAXN 100001
76
#define MAXN 100001
77 #define MAXN 100001
78
using
98
using
0std;
1 #define MAXN 100001
48
std;
0SieveOfEratosthenes[]
7 namespace
06
using
0SieveOfEratosthenes[]
7 namespace
09
#define MAXN 100001
5
#define MAXN 100001
77 SieveOfEratosthenes[]
{
using
0#define MAXN 100001
94using
3using
85
using
0using
8using
9namespace
0
using
0namespace
2using
9namespace
0
using
0____26 namespace
7bool
08 namespace
9
std;
0std;
1 std;
2using
3std;
4
std;
5namespace
6 namespace
7bool
08 std;
9
#define MAXN 100001
0#define MAXN 100001
1using
9namespace
0
std;
0#define MAXN 100001
5
using
0#define MAXN 100001
5
#define MAXN 100001
5
#define MAXN 100001
77 bool
30
{
using
0bool
08 bool
8
using
0____26 namespace
7bool
08 prime[MAXN];
3
std;
0std;
1 prime[MAXN];
6
std;
5bool
44prime[MAXN];
9using
85
bool
47#define MAXN 100001
5
using
0#define MAXN 100001
5
#define MAXN 100001
5
SieveOfEratosthenes[]
0
bool
08 SieveOfEratosthenes[]
3
SieveOfEratosthenes[]
5
bool
56