所以我正在尝试找出素数,但我的程序认为一切都不是素数。有谁知道为什么? 编辑我想我应该详细阐述我想要完成的事情,我有三个变量,两个女巫它们在一起增加,如果问题是否大于C,如果这是情况它会把它写成素数(我已经看到了一些错误,我正在修理它)并且如果在某个时间点A次B等于C(C是我们试图找出的数字是素数还是没有)它将被写为素数
namespace ConsoleApplication3
{
class Program
{
const string fileName = "NotPrime.txt";
const string filnamePrime = "Prime.txt";
static void Main(string[] args)
{
var c = 2;
var a = 1;
var b = 1;
while (true)
{
if (a * b == 1)
{
a = a + 1;
}
if ((a * b == c) && (c != 1))
{
Console.WriteLine("{0} is not prime.", c);
using (BinaryWriter writer = new BinaryWriter(File.Open(fileName, FileMode.Create)))
{
writer.Write(string.Format("{0}\r\n", c));
}
a = a = 1;
b = b = 1;
c = c + 1;
}
if ((a * b != c) && (c * b > c))
{
Console.WriteLine("{0} is prime.", c);
using (BinaryWriter writesr = new BinaryWriter(File.Open(filnamePrime, FileMode.Create)))
{
writesr.Write(string.Format("{0}\r\n", c));
}
a = a = 1;
b = b = 1;
c = c + 1;
}
if (a * b < c)
{
b = b + 1;
a = a = 1; // This is causing everything to mess up here but I know it will be nessesary once I figure out how to fix this current error.
}
Thread.Sleep(1000);
}
}
}
}
答案 0 :(得分:-2)
我认为您需要将单&
更改为&&
。单个&
是一个按位和运算符,它具有比大多数其他运算符更高的运算顺序。这意味着它发生在==
或!=
发生之前。你可能还想在你的表达式周围加上括号&#34; anding&#34;一起。这样就不会混淆你的意图。