IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 输出100-200之间素数的方法 -> 正文阅读

[C++知识库]输出100-200之间素数的方法

目录

素数定义

一、打印数字

二、实现并优化代码

?

总结




素数定义

素数不能被1和自身以外的数整除。


一、打印数字

首先我们使用一个for循环先打印出100-200的数字

#include <stdio.h>
int main()
{
int i = 0;
for ( i = 100 ; i <= 200 ; i++)
    {


    }
return 0;
}


二、实现并优化代码

既然素数的定义是整除的我们即可用 a%b==n进行判断

1、

#include <stdio.h>
int main()
{
int i = 0;
int count = 0;
for ( i = 100 ; i <= 200 ; i++)
    {
     int j = 0 ;                          我们这里定义一个就j对i进行一个试除
         for( j = 2 ; j < i ; j++)
           {
              if( i % j == 0)            当 i能被 他之前的数整除的时候那i不是素数我们跳出循环
                 {
                   break:
                  }
           if ( i == j)                  当j一直++到等于i时,只能能被自身整除时我们就打印出i
             {
               count++;
               printf("%d ", i);
              }

    }
  printf("/n count = %d/n" ,count );
return 0;
}

我们为了可以判断自己是否输出正确我们可以引入一个count来计算我们100-200之间的素数个数


这是我们得出的答案,当然如果我们不清楚为什么要 i==j 我们可以再引入一个 flag?来更好的理解

#include <stdio.h>
int main()
{
	int i = 0;
	int count = 0;
	for (i = 100; i <= 200; i++)
	{
		int j = 0;
		int flag = 1;
		for (j = 2; j < i; j++)
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount =%d\n ", count);
	return 0;
}  

我们一开始让 falg = 1 对i进行判断如果i不是素数我们将flag赋值为0,这样下面if进行判断时不能进行下去,如果i是素数我们可以直接对i打印。

让我们来对代码进行简化

我们知道偶数都不是素数,那我们在打印100-200之间的数字时我们可以直接跳过偶数来优化我们的代码

?注意将i重新赋值为101否则会出现

这样我们就可以跳过偶数达到目的?

进一步优化

我们还能对j的值也进行优化,这就要运用到数学知识。

a = c * d,那其中最少有一个数会<= a开根 ,知道这样的话我们就可以将j的范围从 2到 i-1 进一步缩小到根号i来进一步优化我们的代码

那要输入根号我们要使用sqrt,sqrt(i)即为i开根,为了使用sqrt 我们要引入

#include <stdio.h>
#include <math.h>
int main()

{
	int i = 0;
	int count = 0;
	for (i = 101; i <= 200; i+=2)
	{
		int j = 0;
		int flag = 1;
		for (j = 2; j <=sqrt(i); j++)
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
		{
			count++;
			printf("%d ", i);
		}
	}
	printf("\ncount =%d\n ", count);
	return 0;
}

这样我们就进一步的优化了我们的运算速度



总结

我们首先了解题目的目的来打印出100-200之间的数,后面根据素数的定义来完成我们的目的,最后再来优化我们的代码。

这是我第一次发博客,也是我学了c语言第一次这样来分享,我只是个小白要走的路还长 .我一开始是不知道还有这样的优化,也是看了鹏哥的视频知道了有这么多的方法优化代码,鹏哥说的一句话让我感受很深:"我们起初都是小白,只有不断的去看别人写的更好的代码,敲更多的代码,不断的试错我们才能成长,我们代码才能敲的更快,更好。"

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 15:45:21  更:2021-12-14 15:46:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 12:41:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码