c#会的帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/24 10:22:50
判断一个数是否是素数
我执行完总是出现不是一条命令
例如
输入 9
结果:9不是素数
输入 3
结果:3不是素数

using System;
using System.Collections.Generic;
using System.Text;

namespace sushu
{
class Program
{
static void Main(string[] args)
{
int i=2, n;
Console.WriteLine("请输入一个数");
n = Int32.Parse(Console.ReadLine());
while(n%i!=0)
{i++;
}
if(n%i==1)
Console.WriteLine("{0}是素数", n);
else
Console.WriteLine("{0}不是素数", n);
}
}
}

到底哪里错了

if(n%i==1)改成if(n%i==0)
除了1和他本身之外还有其他数可以整除他
那他就不是素数
话说你这写的····
不是吧好像都有问题的样子
我重新给你写了

static void Main(string[] args)
{
int i = 2, n;
Console.WriteLine("请输入一个数");
n = Int32.Parse(Console.ReadLine());
while (n % i != 0&&i<n)
{
i++;
}
if (i==n)
Console.WriteLine("{0}是素数", n);
else
Console.WriteLine("{0}不是素数", n);
}

if(n%i==1) 改成 if(i < n)

你的算法应该不对吧?

先判断是否是偶数,,然后再判断是不是余1,,这样算的结果不一定是素数吧?。。。

直接除到 根号i ,然后判断就行了。。。有余数,就是素数。。余数为0,就不是素数。。。

if(n%i==1) : 改if(n/i>1)
———————————————————————
说明
while(n%i!=0)
{i++;
}

此循环表明:当 n%i!=0 为假的时候跳出 ,也也就是说n%i的值0了!
那么这个判断if(n%i==1) 还有意义吗?如何时候都为假!