列出所有素数高达100

时间:2016-01-01 19:41:45

标签: c# primes

写下面的代码试图识别所有素数为100.它输出1,2和5.任何人都可以看到为什么它不会继续超过前3个?

我知道我可以进行一些效率调整(只有赔率数字等),但只是试图首先获得核心(矫枉过正)概念。我是一个完整的菜鸟,只是想通过编程增强我的直觉,所以我知道它可能不是最优雅的解决方案,但更感兴趣的是它为什么不起作用。

感谢任何帮助..新年快乐!

static void Main(string[] args)
{
    int q = 100;
    for (int i = 1; i < q; i++)
    {
        if ((q % i) == 0)
        {
            bool isPrime = true;
            for (int j = 2; j < i; j++)
            {
                if ((i % j) == 0)
                {
                    isPrime = false;
                }
            }

            if (isPrime == true)
            { 
                Console.WriteLine(i + " is a prime number... hopefully.");
            }
        }
    }
    Console.ReadKey()
}

1 个答案:

答案 0 :(得分:4)

q%i将结果过滤为素数因子100,即1,2,5

如果删除该部分,它应该可以正常工作。