问题标题: 酷町堂:1062

0
0
已解决
胡钰妍
胡钰妍
资深光能
资深光能

#include<bits/stdc++.h>
using namespace std;
long long n,j,i,a[100001],b[100001],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;

哪错了


0
已采纳
荣逸乐
荣逸乐
资深守护
资深守护
定义 n,a,tmp,maxn,maxt;
bool judge(int n){//判断质数
	if(n==1) return false;
	循环 i从2开始,至sqrt(n)结束{
		if(n%i==0) 返回 false;
	}
	返回 true;
}

主函数:


    cin>>n;
    循环 i从1开始,至n结束{
		cin>>a;
		循环 j从a开始,至1结束,j--{
			if(a%j==0&&judge(j)){
				tmp=j;
				break;
			}
		}
		if(maxn<tmp){
			maxn=tmp;
			maxt=a;
		}
    }
    cout<<maxt;
 

 

荣逸乐在2020-09-16 17:22:49追加了内容

对了,头文件要加:#include<cmath>

我要回答