问题标题: 酷町堂:1062

0
0
已解决
宋梓涵
宋梓涵
新手光能
新手光能
#include<iostream>
using namespace std;
int n,j,i,a[20001],b[20001],max1,s=0;
int main()
{
    cin>>n;
    for(int k=1;k<=n;k++)
    {
        cin>>a[k];
        for(i=a[k];i>=1;i--)
        {
            s=0;
            for(j=i-1;j>=2;j--)
            {
                if(i%j!=0)
                {
                    s++;
                }
                else break;
            }
            if(s==i-2)
            {
                if(a[k]%i==0)
                {
                    b[k]=i;
                    break;
                }
            }
            else b[k]=0;
        }
    }
    max1=b[1];
    s=1;
    for(i=2;i<=n;i++)
    {
        if(b[i]>max1)
        {
            s=i;
            max1=b[i];
        }
    }
    cout<<a[s];
    return 0;
}

超时10分代码!!!大佬们,HELP!!!

/*

提供思路者优先采纳!!!

*/


0
已采纳
金一铭
金一铭
新手光能
新手光能

思路:

最简单的方法就是先定义素数函数,在函数里写一个循环,如果有因数,就停止循环,然后再用定义的布尔型变量反过来保存,最后在主函数里写起来就很容易了,一定正确。

0
我要回答