如何用C#来做一个证明题。。。

来源:百度知道 编辑:UC知道 时间:2024/06/03 03:05:39
就是证明2000以内的偶数都可以分成两个素数之和(素数就是只能被1和自身整除的数),我是这样写的,但是结果好像不对,请帮忙修正。。。谢谢了!

using System;
class S
{
static void Main()
{
for (int i = 2; i < 2001; i+=2)
{
for (int x = 2; x < i; x++)
{
for (int y = 2; y < i; y++)
{
if (x + y == i)
{
for (int n = 2; n < x; n++)
{
if((x%n) != 0)
{
for(int m=2;m<y;m++)
{
if((y%m) !=0)
{
Console.WriteLine("2000以下的偶数中可以分成两个素数相加的有:{0}分成{1}+{2}",i,x,y);

}<

给你个思路吧

给定一个小于2000的数, 然后求出小于这个数的所有的素数, 然后判断素数中,是否有和等于这个数的。

你的做法错在判断一个数是不是素数上.判断一个数是不是素数的方法是,拿从2开始到这个数开平方并取整的数依次去除它,如果余数都不为0,则是,否则不是素数。

做法参考。
1、找出2000内所有素数,存于数组内。
2、从x(x>=4)开始依次判断,先从数组中找一个比x小的数y,看能否从数组中找到x-y.

仅供参考。