-
Notifications
You must be signed in to change notification settings - Fork 0
/
cặp số thân thiết
62 lines (57 loc) · 1.57 KB
/
cặp số thân thiết
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//cặp số thân thiết khi chúng có chung ước số ngto lớn nhất
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
vector<int> pr;
vector<int> list;
//lập list SNT<1000
for (int i = 2; i < 1000; i++)//số bị chia
{
int dem = 0;
for (int j = 2; j <= sqrt(1000); j++)//số chia
{
if (i % j == 0)
dem++;
}
if (dem == 1) //i chỉ chia hết cho chính nó
pr.push_back(i);
}
//list ước ngto của a giảm dần (lấy phần tử đầu)
for (int i = a; i > 1; i--)//ước của a
{
for (int j = a; j >= 0; j--)//chỉ số của pr[]
{
if (a % i == 0 && i == pr[j])//ước của a và thuộc ds SNT
{
list.push_back(i);
}
}
}
//list ước ngto của b tăng dần (lấy phần tử cuối)
for (int i = 2; i <= b; i++)
{
for (int j = b; j >= 0; j--)
{
if (b % i == 0 && i == pr[j])
{
list.push_back(i);
}
}
}
cout<<"uoc ngto cua 2 so: ";
vector<int>::iterator i;//kbao con trỏ để duyệt
for(i=list.begin(); i!=list.end(); i++){
cout<<*i<<" ";
}
cout<<"\nuoc ngto lon nhat: ";
cout << *list.begin() << " " << *list.rbegin()<<"\n";
if (*list.begin() == *list.rbegin())
cout << "cap so than thiet";
else
cout << "cap so KO than thiet";
return 0;
}