Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
求数是否为素数的c#程序_C#_Primes - Fatal编程技术网

求数是否为素数的c#程序

求数是否为素数的c#程序,c#,primes,C#,Primes,我的任务是:编写一个表达式,检查给定的正整数n(n≤ 100)是质数。37是最好的 int number = int.Parse(Console.ReadLine()); for (int i = 1; i < 100; i++) { bool isPrime = (number % number == 0 && number % i == 0); if (isPrime) {

我的任务是:编写一个表达式,检查给定的正整数n(n≤ 100)是质数。37是最好的

    int number = int.Parse(Console.ReadLine());


    for (int i = 1; i < 100; i++)
    {
        bool isPrime = (number % number == 0 && number % i == 0);

        if (isPrime)
        {
            Console.WriteLine("Number {0} is not prime", number);
        }
        else
        {
            Console.WriteLine("Number {0} is prime", number);
            break;
        }

    }
int number=int.Parse(Console.ReadLine());
对于(int i=1;i<100;i++)
{
bool isPrime=(数字%number==0&&number%i==0);
如果(iPrime)
{
WriteLine(“数字{0}不是素数”,数字);
}
其他的
{
WriteLine(“数字{0}是素数”,数字);
打破
}
}

这似乎不起作用。有什么建议吗?

a。您希望
number%number
做什么

b。每次通过循环时,您的iPrime检查都会“重置”。需要更像这样的东西:

bool isprime = true;
for(int i = 2; i < number; i++) {
    // if number is divisible by i then
    //    isprime = false;
    //    break
}
// display result.
bool isprime=true;
for(int i=2;i
int number=int.Parse(Console.ReadLine());
布尔素数=真;
//我们只需要数到一个数的平方根就可以了
int upper=(int)Math.Sqrt(number);
对于(inti=2;i,这里是给你的:

void prime_num(long num)
    {
        bool isPrime = true;
        for (int i = 0; i <= num; i++)
        {
            for (int j = 2; j <= num; j++)
            {
                if (i != j && i % j == 0)
                {
                    isPrime = false;
                    break;
                }
            }
            if (isPrime)
            {
                Console.WriteLine ( "Prime:" + i );
            }
            isPrime = true;
        }
    }
void prime_num(长num)
{
bool isPrime=true;
对于(int i=0;i而言,问题是:
for应该从2开始,因为任何数字都将被1除掉。
数字%number==0-这始终是真的
如果他把所有的步骤都吃肉,那么这个数就是素数

else
{
     Console.WriteLine("Number {0} is prime", number);
     break;
}
不应该在那里

代码应该是这样的:

        int number = int.Parse(Console.ReadLine());
        if (number == 1)
        {    Console.WriteLine("Number 1 is prime");return;}

        for (int i = 2; i < number / 2 + 1; i++)
        {
            bool isPrime = (number % i == 0);

            if (isPrime)
            {
                Console.WriteLine("Number {0} is not prime", number);
                return;
            }
        }
        Console.WriteLine("Number {0} is prime", number);
int number=int.Parse(Console.ReadLine());
如果(数字==1)
{Console.WriteLine(“数字1是素数”);返回;}
对于(int i=2;i

请注意,我没有测试这一点…只是在这里写了它。但你应该明白这一点。

使用LINQ的半严重可能解决方案(至少需要更小的范围):


程序检查给定的数字是否为素数

素数是一个只能被1除和自身的数

class Program
{
    bool CheckIsPrimeNumber(int primeNum)
    {
        bool isPrime = false;

        for (int i = 2; i <= primeNum / 2; i++)
        {
            if (primeNum % i == 0)
            {
                return isPrime;
            }
        }
        return !isPrime;
    }
    public static void Main(string[] args)
    {
        Program obj = new Program();
        Console.Write("Enter the number to check prime  :  ");
        int mPrimeNum = int.Parse(Console.ReadLine());

        if (obj.CheckIsPrimeNumber(mPrimeNum) == true)
        {
            Console.WriteLine("\nThe " + mPrimeNum + " is a Prime Number");
        }
        else
        {
            Console.WriteLine("\nThe " + mPrimeNum + " is Not a Prime Number");
        }

        Console.ReadKey();
    }
}
类程序
{
bool CheckIsPrimeNumber(int primeNum)
{
bool isPrime=false;

对于(int i=2;我请告诉我们它做了什么是错误的?这里还有一个线索-看看if语句和writeline它们是否正确?这是某种家庭作业还是课程作业?1.因为这对我来说似乎是某种家庭作业,我不想为你写答案。2.你提供的“不工作”怎么样?3.如果你的算法是错误的(我不是说它是正确的或是错误的)您可能想查看或打印1和数字之间的所有素数,但它不会检查输入是否为素数,这就是问题所在。另外,当
i
将达到
Int32时,它将抛出
StackOverflowException
。当您将其与
long
进行比较时,它将抛出
StackOverflowException
。。。
var isPrime = !Enumerable.Range(2, number/2).Where(i => number % i == 0).Any();
class Program
{
    bool CheckIsPrimeNumber(int primeNum)
    {
        bool isPrime = false;

        for (int i = 2; i <= primeNum / 2; i++)
        {
            if (primeNum % i == 0)
            {
                return isPrime;
            }
        }
        return !isPrime;
    }
    public static void Main(string[] args)
    {
        Program obj = new Program();
        Console.Write("Enter the number to check prime  :  ");
        int mPrimeNum = int.Parse(Console.ReadLine());

        if (obj.CheckIsPrimeNumber(mPrimeNum) == true)
        {
            Console.WriteLine("\nThe " + mPrimeNum + " is a Prime Number");
        }
        else
        {
            Console.WriteLine("\nThe " + mPrimeNum + " is Not a Prime Number");
        }

        Console.ReadKey();
    }
}