2955. Familial Numbers

10175102262 LarsPendragon

C语言(C班)A题题解
(第一题居然不是送分题,吃惊)
(因为是第一题所以代码写的不是很好)
这里大量用到了三目运算符来取最小值

#include <stdio.h>
int main()
{
    int T, I;
    scanf("%d",&T);
    for(I=0; I<T; I++)
    {
        int m, n, a;
        scanf("%d %d",&m,&n);
        int x=m>n?n:m;
        for(a=2; a<=m>n?n:m; a++)
            if(m%a==0 && n%a==0) break;
        if(a>=m>n?n:m && (n%a!=0 || m%a!=0))
            printf("case #%d:\nNo\n",I);
        else printf("case #%d:\nYes %d\n",I,a);
    }
    return 0;
}
10175102128

巨佬, 麻烦post之前看看能不能AC, wzy强行要我解释过不掉的代码是什么意思.
我也是.的不行了

10175102262 LarsPendragon

代码没验,尴尬了,应该在用括号提高一下三目运算符的优先级

Li Dao

质因数只是一个幌子
http://acm.cs.ecnu.edu.cn/bbsread.php?id=3928&set=2946
有点类似于这道题目

Li Dao

质因数只是一个幌子
只要能找到n和m的不是1的公因数(记为k)
那么一定能找到n和m的公共质因数(记为p)

因为p是k的因数

include

using namespace std;
int T,n,m;
int solve()
{
for(int i=2;i<=min(n,m);i++) //枚举到上面所说的p的时候,就return p了,这个p必定是质因数
if(n%i==0 && m%i==0) return i;
return -1;
}
int main()
{
cin>>T;
for(int step=0;step>n>>m;
int ret=solve();
if(ret!=-1) printf(“case #%d:\nYes %d\n”,step,ret);
else printf(“case #%d:\nNo\n”,step);
}
return 0;
}

Low.be

数据量比较小可以先筛质数

include

using namespace std;
typedef long long ll;
int isprime[10005];
vector prime;
int main(){
int t; cin >> t;
for(int i = 2; i < 10005; i++){
if(!isprime[i]){
prime.push_back(i);
for(int j = 2; j * i < 10005; j++){
isprime[i * j] = 1;
}
}
}
int s = prime.size();
for(int z = 0; z < t; z++){
int a, b;
cin >> a >> b;
printf(“case #%d:\n”, z);
if(!isprime[a] && !isprime[b]) cout << “No” << endl;
else{
int ans = -1;
int flag = 0;
for(int i = 0; i < s; i++){
if((a % prime[i] == 0) && (b % prime[i] == 0)){
flag = 1;
ans = prime[i];
break;
}
}
if(flag) cout << “Yes ” << ans << endl;
else cout << “No” << endl;
}
}

return 0;

}

Suzuki_Yuuta
int gcd(int a, int b) {
    return ((b == 0)? a : gcd(b, a % b));
}
void solve() {
    int a, b; cin >> a >> b;
    if (gcd(a, b) > 1) {
        cout << "Yes ";
        for (int i = 2; i < gcd(a, b); i++) {
            if (a % i == 0 && b % i == 0) {
                cout << i << endl; break;
            }
        }
    } else {
        cout << "No" << endl;
    }
}
10152130230

质数本身如何分解成若干个质数乘积
[em:01]

10152130208

是否需要考虑是不是质数? 我这样竟然可以通过!!!
我也觉得这种简单处理的思路很好,蟹蟹你哦,给我提供了另一种思考问题的方式[em:01]

你当前正在回复 博客/题目
存在问题!