c#用筛选法求出1-100的素数
答案:2 悬赏:20
解决时间 2021-02-12 16:33
- 提问者网友:呆萌心雨
- 2021-02-12 01:13
c#用筛选法求出1-100的素数
最佳答案
- 二级知识专家网友:怪咖小青年
- 2021-02-12 01:27
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
{
if(m%i==0)
{
a = false;
break;
}
}
}
if(a==true)
{
sum++;
Console.Write(m.ToString()+" ");
}
}
Console.WriteLine();
Console.WriteLine("total:" + sum);
}
}
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
if(m%i==0)
{
a = false;
break;
}
}
}
if(a==true)
{
sum++;
Console.Write(m.ToString()+" ");
}
}
Console.WriteLine();
Console.WriteLine("total:" + sum);
}
}
全部回答
- 1楼网友:湫止没有不同
- 2021-02-12 03:01
#include<iostream>
using namespace std;//编译命令
#include<math.h>
const int max=100;//定义常量max
int main()//主函数
{
int prime[max+100]={0};//定义变量并初始化
int i,j,k=sqrt(max);
for(i=2; i<=k; i++)//枚举筛数
{
if(prime[i]==0)//如果这个数没被筛,就看看
{
j=i*2;//将原数扩大二倍初始化给j
do
{
prime[j]=1;//将j筛掉
j+=i; //再扩大一倍
}
while(j<=max);//直到最大
}
}
for(i=2; i<=max; i++)
{
if(prime[i]==0)//循环输出
cout<<i<<" ";
}
cout<<endl;
return 0;
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯