海獭懒懒 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日

悬赏问题

  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题