判断素数(质数)

2024-04-20 02:48
文章标签 判断 质数 素数

本文主要是介绍判断素数(质数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目要求:对于输入一个整型的数判断是否为素数

程序思路:判断一个数为素数的本质是除了自己和1之外没有整除数的话就是素数。最差的做法就是从小于这个数和大于2这个范围内的所有整数都扫一遍。蛮横法表现出来的效率就是太低,为了寻找更好的效率,经过不断的总结规律,人们发现,判断一个数是否为素数不用比较太多,只需要跟他的开根号内的数来判断是否有该数的因子。算法还对1和2做了修补,1和2是特殊的质数。使得算法的适应性更强,效率更高。下面是算法实现:

#include <stdio.h>
#include <math.h>

bool adjustPrime(int Num)
{
bool Result = false;
do
{
if(Num <= 0)
{
printf("Please input number more than 0!");
break;
}
if(Num == 1 || Num == 2)
break;
int Factor = sqrt(Num);
for(int i = 2;i <= Factor; i++)
   if(!(Num%i))
   {
    Result = true;
    break;
    }
}while(false);
return Result; 
}

int main()
{
printf("%d\n",adjustPrime(2));

printf("%d\n",adjustPrime(20));
return 0;

输出的结果如下(运行平台是C-free):


这篇关于判断素数(质数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/919112

相关文章

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

LeetCode--204 计数质数

题目 统计所有小于非负整数 n 的质数的数量。 示例 示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。 class Solution {public:int countPrimes(int n) {if (n <= 2) return 0;int cnt = 0;vector<bool> isPrime(n, true);

【Python如何输入升高和体重判断你是偏胖还是偏瘦】

1、求体质指数得Python代码如下: # BMI(Body Mass Index)指数:简称体质指数,# 是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准。# 常用指标:BMI<18.5 偏瘦 18.5<=MBI<=24 正常 MBI>24 偏胖# 计算公式:BMI=体重kg/身高的平方ma = eval(input("请输入你的体重(kg):")) # 输入体重b = e

算法11—判断一个树是不是二叉查询树

问题: 给定一个二叉树,判断它是否是二叉查询树。 思路: 要判断是否是二叉查询树,标准就是看每一个节点是否满足:1、左节点及以下节点的值比它小;2、右节点及以下节点的值比它大。当然,前提是子节点都存在的情况。所以,我们需要从根节点不断向下递归,只要所有节点都满足,那么就是BST,否则,就不是。 代码: [java]  view plain copy pri

算法7— 判断一个单链表是否有环,如果有,找出环的起始位置

第一种方法是从单链表head开始,每遍历一个,就把那个node放在hashset里,走到下一个的时候,把该node放在hashset里查找,如果有相同的,就表示有环,如果走到单链表最后一个node,在hashset里都没有重复的node,就表示没有环。 这种方法需要O(n)的空间和时间。 第二种方法是设置两个指针指向单链表的head, 然后开始遍历,第一个指针走一步,第二个指针走两步,如果没

算法6— 判断两个链表是否相交

问题: 给出两个单向链表的头指针,比如h1、h2,判断链表是否相交,如果不相交返回NULL;如果相交,返回指向第一个相交节点的指针。时间复杂度控制在O(n)。 分析: 如果两单向链表相交的话,一定是Y型相交,不可能出现X型,弄清楚这点后接下来的工作就是: (1)先找到h1,h2的最后一个节点L1和L2,同时记录节点数量a,b;(这里假设 a > b) (2)判断最后一个节点是否相同

如何判断和处理.DS_Store文件

在Mac上经常会遇到.DS_Store文件,.DS_Store是Mac OS保存文件夹的自定义属性的隐藏文件,如文件的图标位置或背景色,相当于Windows的desktop.ini.那么在使用os.listdir(path)等函数对文件进行操作的时候就会出现invalid literal for int() with base 10 错误。这是因为.DS_Store文件也会包含进去

JS奇偶数判断例子

JS奇偶数判断例子

判断字符串是否为Python标识符

import keyword,stringdef Identifier(s):#内置关键字kw = keyword.kwlist # Bifsbifs = dir(__builtins__) s_list = list(s)# 关键字判断if (s in kw) | (s in bifs):return 'keyWord'# 数字、字母、下划线以及开头判断 elif not s_list[0

java编程:命令行输入的三个整数判断是否构成三角形,不能就抛异常。

写一个方法void sanjiao(int a,int b,int c),判断三个参数是否能构成一个三角形,如果不能则抛出 异常IllegalArgumentException,显示异常信息“a,b,c不能构成三角形”, 如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。 附源代码: package 异常;public class Sa