C++如何判断一个数字是否为质数

关于素数的算法是程序竞赛比较重要的数论知识,我们来看通常会使用的几个算法。

我们先来复习几个基本概念:

质数:对于大于1的自然数,若除了1和它本身,没有别的因数,则称这个数为质数,质数也叫素数。反之,称其为合数。

#include<iostream>
#include<cmath>
using namespace std;

void IsPrime(int);
int main()
{
  int Input;
  cout << "请输入要判断的数字:";
  cin >> Input;
  IsPrime(Input);
  cin.get();
  cin.get();
  return 0;
}

//判断是否为质数
void IsPrime(int x)
{
  if (1 == x)
  {
    cout << "1既不是质数也不是合数!" << endl;
    return;
  }
  for (int i = 2; i <= sqrt(x); i++)
    if (x%i == 0)
    {
      cout << "您所输入的数字为合数!" << endl;
      return;
    }
  cout << "您所输入的数字为质数!" << endl;
  return;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C++回文数及素数问题计算方法

    本文实例讲述了C++回文数及素数问题计算方法.分享给大家供大家参考,具体如下: /* * 作 者: 刘同宾 * 完成日期:2012 年 11 月 16 日 * 版 本 号:v1.0 * * 输入描述: 编制一个返回值为bool型的函数isPrimer(),用于判断参数是否为素数,isPalindrome()用于判断参数是否是回文数,调用函数回答以下问题(可以分别编制几个程序完成,也可以在一个main()函数中完成,输出时,用明显的提示语,说明正在完成哪个任务.) (1)输出10000以内的所有素

  • c++素数筛选法

    素数(又称质数):指在大于一的自然数中,只能被1和它自身整除的自然数: 素数筛选法是指一种非常规的素数判定方法,比较高效率: 原理:任何数的整数倍必定不是素数,大于二的偶数必定不是素数. 我们以找出100以内的素数为例,利用原理,我们可以首先排除偶数是素数,然后进一步判断奇数 实现将偶数标记为0,素数标记为1:(也可以用一个bool数组将偶数标记为false,奇数标记为true) 下面是全部代码 #include <iostream> #include <cmath> #defin

  • C++ 实现求小于n的最大素数的实例

    C++ 实现求小于n的最大素数的实例 枚举就是基于已有知识镜像答案猜测的一种问题求解策略 问题:求小于n的最大素数 分析: 找不到一个数学公式,使得根据N就可以计算出这个素数     我们思考: N-1是素数么?N-2是素数吗?...         所以我们就是判断N-K是否为素数:     N-K是素数的充分必要条件:N-K不能被[2,n-k)中任何一个整除         判断N-K是否为素数的问题可以转化为:     求小于N-K的全部素数(求"小于N的最大素数"中的条件是&q

  • C/C++利用筛选法算素数的方法示例

    什么是求素数 素数指的是因子只有1和本身的数(1不是素数),求解素数在数学上应用非常广泛,而求解n以内的素数也是我们编程时常遇到的问题,在这个问题上,筛选法求解素数运行得非常快. i在2到n-1之间任取一个数,如果n能被整除则不是素数,否则就是素数 称筛法 筛选法又称筛法,是求不超过自然数N(N>1)的所有质数的一种方法.据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274-194年)发明的,又称埃拉托斯特尼筛子. 具体做法是: 先把N个自然数按次序排列起来.1不是质数,也不是合

  • C++如何判断一个数字是否为质数

    关于素数的算法是程序竞赛比较重要的数论知识,我们来看通常会使用的几个算法. 我们先来复习几个基本概念: 质数:对于大于1的自然数,若除了1和它本身,没有别的因数,则称这个数为质数,质数也叫素数.反之,称其为合数. #include<iostream> #include<cmath> using namespace std; void IsPrime(int); int main() { int Input; cout << "请输入要判断的数字:";

  • js 判断一个数字是不是2的n次方幂的实例

    昨天去面试时,面试官问了一道面试题,说如何判断一个数是不是2的n次方幂,我当时不知道2的n次方幂是什么(糗大发了),还好给我解释了一下.最后回家上网查查资料,整理了一下方法. 方法一 如何判断一个数是否是2的n次方幂,其简单判断方法就是这个数num直接除2,若余数为0,则num/2再除2,再判断是不是余数是不是0,是的话继续按上一步来,直到最后为num=1. 比如: 2  2%2=0  (2/2)=1                 是 4  4%2=0  (4/2)%2=0  (4/2/2)=

  • php 快速判断一个数字属于什么范围的实现方法

    需求是这样 ... if ( $foo > 0 && $foo < 100 ) $bar = 1; elseif ( $foo > 99 && $foo < 212 ) $bar = 2; elseif ( $foo > 211 && $foo < 324 ) $bar = 3; elseif ( $foo > 323 && $foo < 382 ) $bar = 4; elseif ( $fo

  • C# 正则判断一个数字的格式是否有逗号的代码

    public string check_number(string num_str)         { num_str = num_str.Trim(); if (Regex.IsMatch(num_str, @"^\d+(\.\d+)?$|^\d+(\,\d+)+(\.\d+)?$"))             {                 this.Nonum = true;                 return num_str.Replace(",&qu

  • JavaScript判断数字是否为质数的方法汇总

    前言 今天看到一个题目,让判断一个数字是否为质数.看上去好像不难.因此,我决定实现一下. DOM结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>计算500以内的质数并输出</title> <meta name="viewport" content="width=d

  • python中判断数字是否为质数的实例讲解

    在计算机程序中,算法是灵魂,是程序的精髓所在.程序执行效率的高低直接取决于算法的优劣,所以计算机算法是计算机课程必修课.算法可以快速计算出我们所需要的结果,例如判断质数,这是很基础的内容,具体如何操作呢?下面小编向大家演示在python如何判断数字是否为质数. 质数:一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除(2, 3, 5, 7等),换句话说就是该数除了1和它本身以外不再有其他的因数. 判断代码: def isprime(a): if isinstance(a,int)

  • C#判断一个String是否为数字类型

    方案一:Try...Catch(执行效率不高) 复制代码 代码如下: private bool IsNumberic(string oText) {     try     {         int var1=Convert.ToInt32 (oText);         return true;     }     catch     {         return false;     } } 方案二:正则表达式(推荐) a) 复制代码 代码如下: public static bool

  • Python 输入一个数字判断成绩分数等级的方法

    成绩分数等级为: 100-90 A 90-80 B 80-70 C 70-60 D 60以下 F 实现判断分数等级是一个很简单的数学问题,只要你输入的这个数字介于两个数字之间既可以判断出这个分数的等级. 代码如下: a=eval(input()) if a>=90: print("A") elif 90>a>=80: print("B") elif 80>a>=70: print("C") elif 70>a&

  • C#判断一个字符串是否是数字或者含有某个数字的方法

    第一种就是 最常见的 用Try..Catch.. 再try中强转你要确认的string 类型 成功就是int  catch 就不是 string a = "avdfd"; try { int b = int.Parse(a); } catch (Exception) { Console.WriteLine("不是"); } 还有就是简单一点的 int.Tryparse() 比如 bool IsNumber = int.TryParse("你要判断的值&qu

  • ASP中如何判断一个字符是不是汉字

    程序设计中我们时常需要检测用户输入是否正确,特别是姓名,地址等等是不是输入的汉字.那么,如何判断一个字符是不是汉字呢?其实在asp中至少有两种方式 一.直接将某字符用asc转为ascii码,如果是英文,他应该是0-127的范围,而汉字则是一个比较大的数字,所以可以使用以下代码来判断: if abs(asc(whichchar))>127 then response.write whichchar & "是一个汉字" else response.write whichcha

随机推荐