写下面的代码试图识别所有素数为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()
}
答案 0 :(得分:4)
q%i
将结果过滤为素数因子100,即1,2,5
如果删除该部分,它应该可以正常工作。