static void Main(string[] args)
{
int i, n = 0;
int[] arr = new int[200];
for (i = 2; i < 200; i++)
{
arr[i] = i;
}
for (i = 2; i < 200; i++)
{
for (n = 2; n < i; n++)
{
if (i % n == 0)
{
arr[i] = 0; //标志不是素数的数为0
}
}
}
for (i=2;i<200 ;i++ )
{
if (arr[i] != 0) //如果不为0,则为素数
{
Console.WriteLine(arr[i].ToString());
}
}
Console.ReadLine();
}
这是从C语言得来的启发。
main()
{
int arr[200];
int i,n;
clrscr();
for(i=2;i<=200;i++)
arr[i]=i;
for(i=2;i<=200;i++)
for(n=2;n<i;n++)
{
if(i%n==0)
{
arr[i]=0; //标志不是素数的数为0
}
}
for(i=2;i<=200;i++)
{
if(a[i]!=0) //如果不为0,则为素数
{
printf("%d",a[i]);
printf("/n");
}
}
}
这是牺牲空间来换取时间,但不是最好的算法。只是这是比较容易理解的算法。
当然,根据,一个整数不能整除他的平方数之内的整数就是素数。可以有好多方法。
如何设计C和C#中的算法,那就得多花时间。
C#如何判断素数:
static void Main(string[] args)
{
Console.Write("请输入一个整数:");
string str = Console.ReadLine();
int n = int.Parse(str);
bool bis = sushu(n);
if (bis == true)
{
Console.WriteLine("是素数");
}
else
Console.WriteLine("不是素数");
Console.ReadLine();
}
static bool sushu(int n)
{
for (int i = 2; i < n; i++)
{
if (n % i == 0)
{
return false;
}
}
return true;
}