题解 | #筛选法求素数#

筛选法求素数

https://www.nowcoder.com/practice/06c3dcc303654ef4926654023eca1e5a

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#define NUM 100
int main()
{
	int num = 0;
	while (~scanf("%d", &num))//多组输入
	{
		int arr[NUM] = { 0 };
        //向数组中存入数据
		for (int i = 2; i <= num; i++)
		{
			arr[i] = i;//一一对应上
		}

		//筛选法
		
		for (int i = 2; i <= num; i++)
		{
			for (int j = i + 1; j <= num; j++)//将数组中2之后的所有能被2整除的数清0
				                              //再将3之后的所有能被3整除的数清0 
			{
				if (arr[j] % i == 0)//将不是素数的数赋值为 0
				{
					arr[j] = 0;
				}
			}
		}

		//输出
		int cnt = 0;//计数器  //统计不是素数的数
		for (int i = 2; i <= num; i++)
		{
			if (arr[i] != 0)
			{
				printf("%d ", arr[i]);//输出素数
			}
			else
				cnt++;
		}
		printf("\n%d\n", cnt);//输出不是素数的数
	}



	return 0;
}

全部评论

相关推荐

10-25 22:20
门头沟学院 Java
代码飞升:同学院本,个人亮点去了,打招呼里面的废话也去了,学院本就是路边一条,明天拉满然后该学还是学,小厂也行尽量先有一段实习。另外你的项目描述写的不好,具体列一下可被提问的点,然后量化一下指标或者收益吧
投了多少份简历才上岸
点赞 评论 收藏
分享
LXXXXd:有点杂,想搞自动化的话没必要把法律的经历写上去
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务