bool is_prime(int n){
if(n < 2) return false;
for(int i = 2;i <= n / i;i ++){//i<=n/i这一步很关键!!
if(n % i == 0){
return false;
}
}
return true;
}
范围小则用欧拉筛
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
bool isComp[100000005]; //是不是素数
void isCop(bool isComp[], int n)
{
isComp[1] = 1; //1的特判
for (int i = 2;i * i <= n;i++)
{
if (isComp[i] == 0) //如果是素数
for (int j = i * i;j <= n;j += i) //将他的倍数记为合数
isComp[j] = 1; //标记
}
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n = 1000005;
isCop(isComp, n);
int tt;
cin >> tt;
while (tt--) {
int num;
cin >> num;
if (!isComp[num]) {
cout << "YES" << endl;
}
else cout << "NO" << endl;
}
}
//以上是预处理过程
//如果需要查找,则for循环查找,如果isComp[i]==0;则是质数
最大公约数和最大公倍数:
#include <bits/stdc++.h>
#define endl '\n'
#define int long long
using namespace std;
int gcd(int a, int b) {
if (b == 0)return a;
return gcd(b, a % b);
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int a, b;
while (cin>>a>>b) {
int ans = gcd(a, b);
cout << ans << " " << a * b / ans << endl;
}
}