帮忙看下哪里错了
2023-07-15 11:01:46
发布于:浙江
题目 A1765.互质
https://www.acgo.cn/problemset/1765/info
代码:
#include<bits/stdc++.h>
using namespace std;
const int F=1e7;
short a[F]={};
bool f(int a,int b){
for(int i=2;i<=min(a,b);i++){
if(a%i==0&&b%i==0){
return 0;
}
}return 1;
}
int main(){
int n,m,max=0,x=0;
cin>>n;
for(int i=0;i<n;i++){
cin>>m;
for(int i=1;i<=m;i++){
cin>>a[i];
}for(int i=m;i>0;i--){
for(int j=m;j>0;j--){
if(a[i]==a[j]&&a[i]==1){
cout<<i+j<<endl;x=1;break;
}if(f(a[i],a[j])){
cout<<i+j<<endl;x=1;break;
}
}if(x){
break;
}
}if(x==0){
cout<<"-1"<<endl;
}else x=0;
}
}
第九个样例永远过不去,不太理解了。
全部评论 1
#include <iostream>
using namespace std;
int gcd(int a, int b) {
if (b == 0)
return a;
return gcd(b, a % b);
}
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
int a[1010] = {0};
for (int i = 1; i <= n; i++) {
int x;
cin >> x;
a[x] = i;
}
int cnt = -1;
for (int i = 1; i <= 1000; i++) {
for (int j = i; j <= 1000; j++) {
if (a[i] != 0 && a[j] != 0 && a[i] + a[j] > cnt && gcd(i, j) == 1) {
cnt = a[i] + a[j];
}
}
}
cout << cnt << endl;
}
return 0;
}
这是代码2025-02-07 来自 广东
0
有帮助,赞一个