求数是否为素数的c#程序
我的任务是:编写一个表达式,检查给定的正整数n(n≤ 100)是质数。37是最好的求数是否为素数的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) {
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();
}
}