c# 判断质数与素数之学习笔记

作者:袖梨 2022-06-25

比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一

要求:重复让用户输入输入一个数,判断该数是否质数,当输入“q”时,程序运行结束!(质数的判断要求用方法来实现)。

 代码如下 复制代码

class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入一个数:");//默认只许输入“q”或者输入大于1的整数
string numberString = Console.ReadLine();
while (numberString != "q")
{
int numberInt = Convert.ToInt32(numberString );
bool result = PanDuan (numberInt );
if (result == true)
Console.WriteLine("{0}是质数", numberInt);
else
Console.WriteLine("{0}不是质数",numberInt );
Console.WriteLine("请输入一个数:");
numberString = Console.ReadLine();
}
Console.WriteLine("操作结束!!!");
Console.ReadKey();
}
public static bool PanDuan(int number)
{
bool result=true;
for (int i = 2; i < number; i++)
{
if (number == 2)
{
result = true;
break;
}
else if (number % i == 0)
{
result = false;
break;//break好像可以用,但是总是提示“检测到无法访问的代码”,这里一定不严谨
}
else
{
result = true;
break;
}
}
return result;

}
}

例2

 代码如下 复制代码

using System;
  class zhishu
  {
   static void Main(string[] args)
   {
   int i=2;
  
   int Num;
   Console.WriteLine("please enter a number:");
   Num=Convert.ToInt32(Console.ReadLine());
   for (i = 2; i < Num; i++)
   if (Num % i == 0)
   break;
   if (i < Num)
   Console.WriteLine("您输入的数不是质数");
   else
   Console.WriteLine("您输入的数是质数{0}", Num);
  
}
  
}


 

素数是只能被1或本身整除,且不能为其他两个整数的乘积。1、2、3本身就是素数,判断一个数是否为素数,只需要用这个值依次除以2到它的开方数,如果其中有一个数可以整除,那么该值不为素数,返之为素数。代码如下:

 代码如下 复制代码

using System;
using System.Collections.Generic;
using System.Text;
namespace ExPrimeNumber
{
class PrimeNumber
{
public bool primeNumber(int n)
{
bool b = true;
if (n == 1 || n == 2)
b = true;
else
{
int sqr = Convert.ToInt32(Math.Sqrt(n));
for (int i = sqr; i > 2; i--)
{
if (n % i == 0)
{
b = false;
}
}
}
return b;
}
static void Main(string[] args)
{
Console.Write("请输入一个数:");
int n = Convert.ToInt32(Console.ReadLine ());
PrimeNumber p=new PrimeNumber ();
bool b=p.primeNumber(n);
if (b)
Console.WriteLine("{0}是素数",n);
else
Console.WriteLine("{0}不是素数",n);
}
}
}

相关文章

精彩推荐