偿试近可能的减少运算次数,提高运算效率。
int[] shu = new int[1001];
for (int i = 2; i <= 1000; i++)
shu[i-1] = i;
int start = 1; //每一次筛选后未确定数的数组储存段的起始位置
int end = 999; //每一次筛选后未确定数的数组储存段的结束位置
while (start < end)
{
int temp = end;
int shuadd=0;
for (int i = start+1; i <= temp; i++)
{
if (shu[i] % shu[start] == 0)
end--;
else
{
shuadd++;
shu[start + shuadd] = shu[i];
}
}
start++;
}
Console.Write("1,");
for (int i = 1; i <= end; i++)
{
Console.Write("{0},",shu[i]);
}
Console.Read();