C# 解决素数检查的心理方法?

C# 解决素数检查的心理方法?,c#,C#,我正试图开发一个程序,可以打印出1到100之间的所有素数。我在试图概念化这个问题时遇到了麻烦。有多个嵌套循环,我失去了对逻辑的跟踪。以下是不完整的代码/伪代码混乱: using System; class Prime_Screening { static void Main() { Console.WriteLine("This program screens all numbers between 1 and 100 for primes and displa

我正试图开发一个程序,可以打印出1到100之间的所有素数。我在试图概念化这个问题时遇到了麻烦。有多个嵌套循环,我失去了对逻辑的跟踪。以下是不完整的代码/伪代码混乱:

using System;

class Prime_Screening
{
    static void Main()
    {
        Console.WriteLine("This program screens all numbers between 1 and 100 for primes and displays the results.");

            for (int numberToPrimeCheck = 2; numberToPrimeCheck <= 100; numberToPrimeCheck++)
            {
                for (int divisor = 2; divisor <= Math.Sqrt(numberToPrimeCheck); divisor++)
                {
                    int remainder = 0;
                    while (remainder = 0)
                    {
                        remainder = numberToPrimeCheck % divisor;
                        if (remainder != 0)
                        {
                            break;
                        }

                    }
                }
            }
    }
}
使用系统;
类素数筛选
{
静态void Main()
{
WriteLine(“该程序筛选1到100之间的所有素数,并显示结果。”);

对于(int numberToPrimeCheck=2;numberToPrimeCheck这听起来像是一个考试题……不过,您应该能够通过“mod”函数实现这一点。如果“mod”==0,则prime=false。

使用系统;
using System;

class Prime_Screening
    {
    bool prime;
    static void Main()
        {
        Console.WriteLine("Prime numbers x, where: 0 < x < 100");

            for (int num= 2; num<= 100; num++)
            {

                prime = True;
                for (int div= 2; div<= Math.Sqrt(num); div++)
                    if(num % div== 0)
                        prime = False;
                if (prime)
                    Console.Write(num.ToString() + ", ");
            }
        } 
    }
类素数筛选 { 布尔素数; 静态void Main() { Console.WriteLine(“素数x,其中:0对于(int num=2;num,以下是正确的代码:

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("This program screens all numbers between 1 and 100 for primes and displays the results.");

        for (var numberToPrimeCheck = 2; numberToPrimeCheck <= 100; numberToPrimeCheck++)
        {
            var remainder = 1;
            for (var divisor = 2; divisor <= Math.Sqrt(numberToPrimeCheck); divisor++)
            {
                remainder = numberToPrimeCheck % divisor;
                if (remainder == 0)
                {
                    break;
                }
            }
            if (remainder != 0)
                Console.WriteLine(numberToPrimeCheck);
        }
    }
}
使用系统;
班级计划
{
静态void Main()
{
WriteLine(“该程序筛选1到100之间的所有素数,并显示结果。”);

对于(var numberToPrimeCheck=2;numberToPrimeCheck是的,我正要发表同样的评论。这个问题质量很差,应该标记为这样,但Code_Steel是新的。首先,让我们留下建设性的评论,希望他能整理他的问题,使之更适合该网站。答案是“非常小心”@usar,否决投票对个人声誉没有帮助。事实上,否决一个问题不需要任何代表分数。否决一个答案需要(-1)。我认为你是在抢否决票,因为你把两个问题(为什么我的代码不起作用)和(如何成为一个好的程序员)结合起来了。如果你将问题编辑为纯粹关于代码,那么你就不会吸引反对票。在StackOverflow上,不鼓励你提出难以回答的广泛问题。re:你的评论“太严格了。”你的问题不是无效的,这根本不是合适的论坛。牙医大会也不是。也许你可以在StackExchange家族或更远的地方找到一个更合适的论坛。这不起作用,每次低于其根的数字不是一个因素时,它都会打印出数字!嗨,Monacraft,我有这个问题的答案已经有了。谢谢你的回答,但我需要知道如何思考解决这个问题。@Code_Steel补充了解释,尽管它很简单