比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);
}
}
}
|