海獭懒懒 2022-10-31 07:56 采纳率: 100%
浏览 78
已结题

该怎么才能优化这个代码,运行超时了😭

img

#include<stdio.h>

long long gcd(long long a, long long b)
{
if (a % b == 0)
return b;
else
return (gcd(b, a % b));
}
long long test(long long n)
{
long long count = 0;
long long x, y, z;
for (x = 1; x <= n; x++)
{
for (y = x; y <= n; y += x)
{
for (z = y; z <= n; z += y)
{
if (y % x == 0 && z % y == 0)
{
if (gcd(y / x, z / y) == 1)
{
count++;
}
}
}
}
}
return count % 998244353;
}
int main()
{
long long n;
scanf("%lld", &n);
printf("%lld", test(n));
return 0;
}

  • 写回答

2条回答 默认 最新

  • honestman_ 2022-10-31 10:29
    关注

    参考这个吧

    /*
    思路:暴力判断
    */
    #include<iostream>
    #include<map>
    #include<algorithm>
    using namespace std;
    int main() {
        int n;
        map<int,int>m;
        cin>>n;
        int f[n];
        int index=0;
        for(int i = 0; i < n; i++) {
            int v;
            cin>>v;
            if(m[v]==0)
                f[index++]=v;
            else
                m[v]=1;
        }
        sort(f,f+index);
        int ans=0;
        for(int i = 0; i < index; i++) {
            for(int j = i+1; j < index; j++) {
                for(int z = j+1; z < index; z++) {
                    if((__gcd(f[i],f[j])==1&&__gcd(f[i],f[z])==1&&__gcd(f[j],f[z])==1)||(__gcd(f[i],f[j])!=1&&__gcd(f[i],f[z])!=1&&__gcd(f[j],f[z])!=1))
                        ans++;
                }
            }
        }
        cout<<ans;
        return 0;
    }
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月10日
  • 已采纳回答 12月2日
  • 创建了问题 10月31日

悬赏问题

  • ¥15 使用yolov5-7.0目标检测报错
  • ¥15 对于这个问题的解释说明
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备