判断一个数是否为素数 C#

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在完成这个比较复杂的算法设计之前,我们对这个判断过程
做以下了解。

如果某个自然数n是素数,那么可能存在这样的情况——
在2~n/2范围内没有一个自然数k能够整除n。

所以,如果要
判断自然数n是否为一个素数,只需要让n不断的去除以从2
开始的,到n/2结束的整数k,这是一个反复执行的操作。


果在这个范围内的数没有一个k能够整除n,就说明n是一个
素数。

反之,只需要存在一个k能够整除n,就说明n不是一
个素数。

下面是我们对这个算法的分析:
(1)首先输入一个需要判定的自然数n;
(2)然后,将作为质数标志的字符串变量str的值设置为“是
质数”;
(3)接着,我们设置一个除数变量,同时也是一个计数变量
k,将其初值设置为2;
(4)使用第一个判断框,设置循环的条件为“k<=n/2”,因
为除数变量k的最大取值不可能超过n/2;
(5)使用第二个判断框,设置分支条件“n Mod k = 0”来判定自然数n能否被当前的除数变量k整除,如果条件不成立,则让除数变量k加1,然后返回到循环条件的判断框入口处,否则将质数标记字符串变量的值赋值为“不是质数”,再强行退出循环结构,输出变量str的值,算法结束;
(6)当正常退出循环结构后,也同样要输出质数标记字符串变量str的值,算法结束。

string a = console.readline();
int s = int.parse(a);
bool flag = false;
for(int i=2;i<s;i++)
{
flag = s%i == 0;
if(flag)
break;
}
if(flag)
console.writeLine("输入的数字不是质数");
else
console.writeLine("输入的数字是质数");
c# public static void print()
{
int i;
int test = int.Parse(Console.ReadLine());
for (i = 2; i <test; i++)
{
if (test % i == 0)
{
Console.WriteLine("输入的数不是素数");
break;
}
if (i ==test-1)
{
Console.WriteLine("输入的数是素数");
}
}
}
using System;
class Prime
{
static void Main()
{
int sum = 1;
Console.Write(2 + " ");
for(int m=3;m<=100;m+=2)
{
bool a = true;
if(m%2==0)
{
a = false;
}
else
{
for(int i=3;i<m/2;i+=2)
{
if(m%i==0)
{
a = false;
break;
}
}
}
if(a==true)
{
sum++;
Console.Write(m.ToString()+" "); }
}
Console.WriteLine();
Console.WriteLine("total:" + sum); }
}
2007-5-12 01:40:38。

相关文档
最新文档