简短解法——类似桶排序的思路
2024-06-19 15:26:31
发布于:湖北
5阅读
0回复
0点赞
思路:
用了一个类似桶排序的思路,避免每个数字都判断是不是质数
#include <bits/stdc++.h>
using namespace std;
int nums[20010];
int is_prime(int n){
if(n<2)return 0;
else
{
for(int j=2;j<n;j++)
{
if(n%j==0)return 0;
}
return 1;
}
}
int main()
{
/*
解题思路:
因为要测试点数字很多4~N个
所以解题思路就用桶排序的思路,是质数就变为1
到时候就判断这些数字在不在列
*/
for(int i=1;i<=20000;i++)
nums[i] = is_prime(i);
int n;
cin>>n;
for(int i=2;i<n;i++)
{
for(int j=2;j<n-i;j++)
{
if(nums[i]== 1 and nums[j] == 1 and nums[n-i-j]==1)
{
cout<<i<<" "<<j<<" "<<n-i-j;
return 0;
}
}
}
return 0;
}
这里空空如也
有帮助,赞一个