每日一题 2022-5-6

题目自己看,题意很简单。

今天写这个题目的时候,脑子抽了,说实话很简单的题目写了很久,对自己很失望,所以还是得继续加油。

1:我们发现表达式除了第一个之外,其他的数都是分母,然后我们在可以改变运算顺序的地方随便加上一个括号(就是在第一个数之后加括号),我们发现加了括号之后除了第一个数其他的数都会变成分子。

2:我们的题目是求是否能变成整除,我们仔细看看,假如我们就在第一个数上加上括号,除了第二个数其他的数全都变成分子,那问题就变成了除了第二个数之外的其他数乘积是否能整除第二个数的而问题。

总结:题目真的很简单,第一个点也是我也开始就想到了的点,但是再想到这个之后我脱离了题目的意思,题目说只要求是不是可以成为整数,那分子越多,分母越少,可能性就越大,我既然知道可以把分母变成分子,那只需要全都变成分子题目就可以很容易的解决。但是我因为脱离了题目,我就把我找到的第一个点,加入到了题目的运算之中,对题目进行了新的运算。注意:要时刻紧跟题目,知道了题目的特点之后,要找如何转换成结果。

代码

    #include<iostream>
    using namespace std;
    typedef long long LL;
    const int N = 1e4+5;
    int gcd(int a ,int b)
    {
        return b == 0 ? a : gcd(b , a % b);
    }
    int main()
    {
        int t;
        cin  >> t;
        while(t--)
        {
            int n;
            cin >> n ;
            int x , y = 1;
            int f = 0;
            for(int i = 1 ; i <= n ; i ++)
            {
                LL p;
                scanf("%lld",&p);
                if(i == 1) x = p;
                else if(i == 2) y = p , y = y / gcd( y ,x);
                else
                {
                    y = y / gcd( y , p);
                    if(y == 1)
                        f = 1;
                }
            }
            if(f)printf("Yes\n");
            else printf("No\n");
        }
        return 0;
    }
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值