编写素数函数,从键盘输入一个整数,判断输出是否是素数。

news/2024/11/17 7:29:39/

目录

题目

分析思路

法一:

法二:

代码

法一

法二


题目

编写素数函数,在主函数从键盘输入一个整数,调用该函数,在主函数中输出是否是素数。

素数又叫质数,质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。


分析思路

法一:

判断是否为素数,我们只需要用 i 与 2 ~ (i - 1 ) 的数字相除,如果不能整除就为素数。我们假设一开始都为素数:flag = 1;若求出不是素数,则 flag = 0;break;因为 flag 为 1 或者 0 ,所以返回值直接 return flag;

法二:

我们在法一的基础上稍加改动一下:

当一个数 m 可以用 m=a * b 表示时,和 中至少有一个数 小于等于 m−−√m

例如:16,16 = 4 * 4 16 = 2 * 8

举个反例:11,数字11就只能 1 * 11=11

知道了这个原理,我们就会发现:其实没有必要从 2 开始除到 i - 1 ,只需要除到m−−√m

又因为开平方出来的数字不一定是整数,所以我们可以强制 (int) i

当然啦,用了开平方的函数记得添加头文件:#include <math.h>


代码

法一

#include<stdio.h>
void main()
{int x;printf("请输入一个整数:");scanf("%d", &x);if (func(x) == 1)printf("\n%d 是素数",x);elseprintf("\n%d 不是素数",x);
}int func(int x)
{int flag = 1;int i = 0;for (i = 2; i <= (x - 1); i++){if (x % i == 0){flag = 0;break;}}return flag;}

法二

#include<stdio.h>
#include<math.h>
void main()
{int x;printf("请输入一个整数:");scanf("%d", &x);if (func(x) == 1)printf("\n%d 是素数",x);elseprintf("\n%d 不是素数",x);
}int func(int x)
{int flag = 1;int i = 0;for (i = 2; i <= (int)sqrt(x); i++){if (x % i == 0){flag = 0;break;}}return flag;}

希望这篇文章对大家有用,如有错误请指出,我会改正哒。


http://www.ppmy.cn/news/578536.html

相关文章

大数据下批处理性能问题分析优化分享

大数据下批处理性能问题分析优化分享 互联网的步伐加速了硬件资源的发展&#xff0c;而硬件资源的改进&#xff0c;促进社会的建设的快速发展&#xff0c;特别是这互联互通大数据时代&#xff0c;多用户大数据下&#xff0c;单核服务器无法承受处理&#xff0c;特别是对于一个并…

华为云盘(华为云空间)免费空间

华为云盘&#xff08;华为云空间&#xff09;&#xff0c;免费容量&#xff1a;5GB&#xff0c;下载网址&#xff1a;cloud.huawei.com&#xff0c;扩容会员付费&#xff1a;2TB&#xff0c;698元/年&#xff1b;

〖编程初学者的自我修养 - 满分面试篇②〗- 面试之前需要做的「短期准备工作」

简介:应 850+ 小伙伴要求, 无论你是迷茫的在校生还是已经就业的老司机,该专栏都值得你订阅,它会让你成就更好的自己!说明:该文属于 编程初学者的自我修养 专栏,购买任意白宝书体系化专栏可加入易编程社区,早鸟价订阅模式除外。福利:加入社区的小伙伴们,除了可以获取博…

华为鸿蒙什么时候出12g内存,内存真是越大越好?为何华为不上12G,看完秒懂!...

苹果ios和安卓系统因为运行机制的不同&#xff0c;以流畅著称&#xff0c;安卓的卡顿那是出了名的&#xff0c;但是经过长期不懈的改进和软硬一体的优化&#xff0c;论流畅反应速度上华为已经超越了苹果。华为要悠着点&#xff0c;一是要控制价格&#xff0c;二是要控制成本&am…

简单了解华为模拟器

题目&#xff1a; 配置一个http服务器和DNS服务器&#xff0c;客户端能通过DNS服务器访问到htpp服务器。其他终端能互相ping通。 运行环境&#xff1a;华为模拟器 拓扑图&#xff1a; 给终端分配IP地址&#xff0c;网关&#xff1a; 配置域名服务器&#xff1a; 配置h…

华为android界面强刷救砖教程,华为g716强刷刷机教程(可救砖用)

关于华为g716的官方rom固件刷机包之前已经给大家分享过了&#xff0c;这一次主要是来说说如何刷官方的rom固件包吧&#xff0c;华为手机的官方固件包相对于其它手机来说刷入的方法比较简单一些&#xff0c;直接强刷就可以了&#xff0c;同时这个强刷的教程还可以用来救砖用的&a…

(简单)华为G7plus RIO-UL00的Usb调试模式在哪里开启的流程

经常我们使用pc接通安卓手机的时候&#xff0c;如果手机没有开启Usb开发者调试模式&#xff0c;pc则无办法成功检测到我们的手机&#xff0c;有时候我们使用的一些功能强大的应用好比以前我们使用的一个应用引号精灵&#xff0c;老版本就需要打开Usb开发者调试模式下使用&#…

华为路由器配置子卡端口速率

华为路由器配置子卡端口速率 用户可依据端口速率要求设置子卡工作模式。 背景信息 CR5DP2C1HF70子卡端口支持155M和622M两种工作速率&#xff0c;即CR5DP2C1HF70子卡支持2155M和1622M两种工作模式。用户可以根据端口数量和端口速率要求修改子卡的工作模式。 该配置任务仅在Ad…