RE,求dalao调
查看原帖
RE,求dalao调
1584891
yingxiaofei楼主2024/12/26 21:56
#include<stdio.h>
#include<math.h>
int isprime[100000001];
int prime[1000001];
int cnt=0;
void get_prime(int n)
{
	isprime[1]=1;
	for(int i=2;i<n;i++)
	{
		if(!isprime[i])
		{
			prime[++cnt]=i;
		}
		for(int j=1;j<=cnt&&i*prime[j]<=n;j++)
		{
			isprime[i*prime[j]]=1;
			if(i%prime[j]==0)
			{
				break;
			}
		}
	}
}
int max(int x,int y)
{
	if(x>y)
	{
		return x;
	}
	return y;
}
int main()
{
	int n,maxn;
	scanf("%d",&n);
	get_prime(n);
	for(int i=1;i<=cnt;i++)
	{
		for(int j=i+1;j<=cnt;j++)
		{
			if(prime[i]*prime[j]==n)
			{
				maxn=max(prime[j],prime[i]);
				break;
			}
		}
	}
	printf("%d",maxn);
	return 0;
 } 
2024/12/26 21:56
加载中...