有四个测试点过不去为啥

zxpisme 2023-08-06 18:56:29 2023-08-06 18:56:56 29
#include<iostream> 
#include<cmath>
using namespace std; 
bool ifzhishu(int);
int main()
{
	long long s;
	cin>>s;
	long long max = -1;
	for(int i =s/2;i<=s;i++)//i第一个数
	{
		int j = s - i;//j表示第二个数
		if(ifzhishu(j)&&ifzhishu(i))
		{
			//cout<<i<<"+"<<j<<"="<<i+j<<endl;
			cout<<i*j;
			break;
		}
	}
}

bool ifzhishu(int n) { if(n==1) { return 0; } if(n==2) { return 1; } //是否有因数 for(int i = 2;i<=sqrt(n);i++) { if(n%i==0) { return 0; } } return 1; }

{{ vote && vote.total.up }}

共 1 条回复

root 站长

用 long long int, 你的j和i都是int,j*i会越界。