#include<stdlib.h>
#define N 1000000
int map[N] = {0};
int isPrimary(int n)
{
int i;
if(n == 2)
{
return 1;
}
for(i = 2; i*i <= n; i++)
{
if(n % i == 0)
{
return 0;
}
}
return 1;
}
void initMap(int* map)
{
int i;
for(i = 2; i <= N; i++)
{
if(isPrimary(i) == 1)
{
map[i] = 1;
}
}
}
void findPrimary(int n)
{
int i;
if(n % 2 != 0 || n < 1)
{
return;
}
for(i = 2; i <= n; i++)
{
if(map[i])
{
if(map[n - i])
{
if(i <= n / 2)
{
printf("%d = %d + %d \n",n,i,n-i);
}
}
}
}
}
int main()
{
initMap(map);
findPrimary(10000);
}
偶数分解成两个素数的和
最新推荐文章于 2023-10-06 09:44:06 发布