【C素数】素数(质数)和分解质因数
种一棵树最好的时间是十年前,其次是现在
文章目录
- 判断一个数是否是素数
- 1-1.基本概念:
- 1-2.题目描述:
- 1-3.题解思路:
- 1-4代码实现
- 1-4-1方法一:直接flag标记法:
- 1-4-2方法二:函数法:
- 2-1基本概念
- 2-2分解质因数和最大质因数
- 2-3题目描述
- 2-4解题思路
- 2-5代码实现
- 2-5-1方法:函数递归法:
判断一个数是否是素数
博主今天在复习C语言的时候遇到质因数,发现这个知识点忘记了,故有了此篇
先来复习一下概念吧:
一.素数
1-1.基本概念:
- .质数:质数又叫素数,素数是指在正整数范围内,大于0并且只能被1和自身整除的数
- 1不是素数 ,最小的素数是2
- 举20以内的素数为例:2, 3,5 , 7,11, 13, 17, 19
1-2.题目描述:
给你一个数,判断他是否是素数?
1-3.题解思路:
- 如果输入的数为1,则直接判断为不是素数
- 如果输入的数不为1.则从<2–sqrt(n)>循环遍历,看他能否被整除
- 如果有一个被整除就是素数,并break循环(只有有一个能被整除就能判为素数)
- 如果循环结束后,仍然不能被整除,就判断为是素数
说明:为什么是从<2–根号n>循环遍历?而不是从2到n-1?
解释:如果输入的数有一个因子范围在sqrt(n)–n中,那么必然就有一个因子位于2–根号n范围内,例如16=2*8,如果找到了16能被2整除,就没必要找16能被8整除了;
注意开根号函数sqrt(n)要引用头文件#include<math.h>
1-4代码实现
使用flag=0标记,如果整除就改变flag=1,如果循环结束后flag仍为0就说明不能被<2–sqrt(n)>整除。
1-4-1方法一:直接flag标记法:
int main()
{int flag = 0;int n = 0;scanf("%d", &n);if (n == 1){printf("%d不是素数\n",n);}for (int i = 2; i < sqrt(n); i++){if (n % i == 0){printf("%d不是素数\n",n);flag = 1;break;}}if (flag == 0){printf("%d是素数\n",n);}}
1-4-2方法二:函数法:
int is_prime(int n)
{if (n == 1)return 0;for (int i = 2; i < sqrt(n); i++){if (n % i == 0){return 0;//一旦被整除,说明n不是素数,不是素数就返回0}}return 1;//是素数就返回1
}int main()
{int n = 0;scanf("%d", &n);int ret = is_prime(n);if (ret == 1){printf("%d是素数\n",n);}else{printf("%d不是素数\n",n);}return 0;
}
二:合数
2-1基本概念
- 与素数相对,大于1的整数中,除了1和他本身外,还能被其他正整数整除的数
- 最小的合数是4(
【C素数】素数(质数)和分解质因数相关推荐
- python素数(质数)分解
python素数(质数)分解 python小白,大佬请忽略- 素数(质数):除了1和和它本身,没有其他的因数的数. 输入整数n,进行素数分解. #素数只能被1和它本身整除,不能再被其它数整除,能被2整 ...
- 【数学专题】 筛质数、分解质因数和快速幂
筛质数 质数筛法分为埃氏筛和线性筛. 埃氏筛没有线性筛时间复杂度好,不常用,但是他的时间复杂度分析方法却比较常用. 埃氏筛的时间复杂度为O(nloglogn)≈O(n)O(nloglogn)≈O(n) ...
- python大数快速判断质数与分解质因数
python 大数质因数分解 数字较小时: def is_prime(number):for i in xrange(2, int(math.sqrt(number))+2):if number %i ...
- C语言,分解质因数一个解法!_只愿与一人十指紧扣_新浪博客
题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在,你的程序要读入一个 ...
- 关于质因数,分解质因数
质因数(素因数或质因子):在数论里是指能整除给定正整数的质数. 互质:除了1以外,两个没有其他共同质因子的正整数称为互质. 因为1没有质因子,1与任何正整数(包括1本身)都是互质. 正整数的因数分解可 ...
- Java分解质因数(每个非素数(合数)都写成几个素数(也可称为质数)相乘的形式)
分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. 现在 ...
- 质数||素数(分解质因数、筛素数、质数定理)
质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数,否则称为合数. 规定1既不是质数也不是合数 分解质因数:把一个合数分解成若干个因数乘积的形式 分解质因数(也称分解 ...
- 找素数,分解质因数(python)
文章目录 题目 1525: 蓝桥杯算法提高VIP-找素数 分析 代码 通过截图 题目 1464: 蓝桥杯基础练习VIP-分解质因数 分析 代码 通过截图 题目 1525: 蓝桥杯算法提高VIP-找素数 ...
- 素数c分解语言程序,深入分析C语言分解质因数的实现方法
首先来看一个最简单的C语言实现质因数分解的列子: #include void main( ) { int data, i = 2; scanf("%d", &data); ...
最新文章
- STL的pair学习, map学习
- java IO之 File类+字节流 (输入输出 缓冲流 异常处理)
- java二级考点速记_同学,你要的考点速记口诀汇总篇来啦,速记!
- research button control usage in WebIDE
- java oca_OCA第2部分中的Java难题
- STL Map学习总结
- Linux笔记-centos7配置网卡及iftop的使用
- leetcode算法题第一题(c++)
- Java7 和 C# 2.0
- TensorFlow教程之API DOC 6.1.3 Class tensorflow::RandomAccessFile
- (转)Linux 系统性能分析工具图解读(一、二)
- RK3588超强8K视频输出NRV边缘计算盒 AI人工智能
- 一个农村孩子的大城市梦想之深入江湖!
- 在微信小程序中怎么让一个页面的信息传递到另一个页面
- 浅谈设计模式-依赖倒转(倒置)原则
- Luogu P2708 硬币翻转 题解
- FASS-K8S云原生全闪存储解决方案
- JSONObject转换json时出现nameValuePair
- 基于安卓的视频遥控小车——电脑端开发
- 实验五 循环结构(python)
热门文章
- python素数(质数)分解