c语言求出给定范围内的所有质数

程序功能:

输入一个整数,要求打印出这个整数以内的所有质数。

程序示例:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
bool IsPrime(int x)
{
  bool bResult = false;
  int i, k;
  k = (int)sqrt(x);
  for (i = 2; i <= k; i++)
  {
    if (x % i == 0)
    {
      break;
    }
  }
  if (i > k)
  {
    bResult = true;
  }
  else
  {
    bResult = false;
  }
  return bResult;
}
int main()
{
  int a = 0;
  int b = 0;
  int i = 0;
  printf("请输入一个整数:");
  scanf("%d",&a);
  for (i = 3; i <= a; i++)
  {
    if (IsPrime(i))
    {
      printf("%d\n",i);
    }
  }
  system("pause");
  return 0;
}

程序解析:

1,IsPrime()函数用来判断一个整数是不是质数,如果是返回true,否则返回false。在这个函数中因为调用了C语言库函数sqrt(),所以要在头文件中包含#include 。

2,scanf_s()函数用来获取用户输入的数据,并将这个数据保存到局部变量中。

小结:

1,math.h头文件中声明了常用的一些数学运算,比如乘方,开方运算等等,如果你要使用C标准库里的函数,就需要包含声该函数的头文件。

2,我们可以使用scanf()函数从终端获取数据。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持我们!

(0)

相关推荐

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

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

  • ruby判断一个数是否为质数(素数)示例

    ruby判断一个数是否为质数 质数又称素数.一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数:(除0以外)否则称为合数 .根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积:而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的. 复制代码 代码如下: def prime?(num)  res = [1]  res << num if num == 0 || num == 1    return false  end 2.upto(

  • 使用Python判断质数(素数)的简单方法讲解

    质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.素数在数论中有着很重要的地位.比1大但不是素数的数称为合数.1和0既非素数也非合数.质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一.基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等.算术基本定理证明每个大于1的正整数都可以写成素数的乘积,并且这种乘积的形式是唯一的.这个定理的重要一点是,将1排斥在素数集合以外.如果1被认为是素数,那么这些严格的阐述就不得不加上一些限制条

  • Java实现求小于n的质数的3种方法

    质数概念 质数,又称素数,指在一个大于1的自然数中,除了1和此整数自身外,无法被其他自然数整除的数(也可定义为只有1和本身两个因数的数). 最小的素数是2,也是素数中唯一的偶数:其他素数都是奇数.质数有无限多个,所以不存在最大的质数. 一:根据定义去求解: 也是最笨的方式,效率比较低: package test.ms; public class FindPrime { // find the prime between 1 to 1000; public static void main(Str

  • 使用C# 判断给定大数是否为质数的详解

    C#判断给定大数是否为质数,目标以快速度得到正确的计算结果. 在看到这道题的时候,第一反应这是一道考程序复杂度的题,其次再是算法问题.我们先来看看质数的规则:Link:http://en.wikipedia.org/wiki/Prime_numberC#求质数代码: 复制代码 代码如下: public bool primeNumber(int n){             int sqr = Convert.ToInt32(Math.Sqrt(n));             for (int

  • VBS 正则判别素数(质数)

    利用正则判别素数,来源于网络,神人! 复制代码 代码如下: Set regex = New RegExpregex.Pattern = "^1?$¦^(11+?)\1+$"For i = 1 To 100 If Not regex.Test(String(i,"1")) Then  WScript.Echo i End IfNext 看到标题你一定会不屑一顾,枚举质数谁不会? 复制代码 代码如下: For i = 1 To 100 For j = 2 To i  I

  • php输出1000以内质数(素数)示例

    复制代码 代码如下: <?phpfor($i = 2; $i < 1001; $i++) { $primes = 0; for($k = 1; $k <= $i; $k++) if($i%$k === 0) $primes++; if($primes <= 2) // 能除以1和自身的整数(不包括0) echo "<strong>{$i}</strong><br />";}

  • java求100之内的素数(质数)简单示例

    质数又称素数.一个大于1的自然数,如果除了1和它自身外,不能被其他自然数整除的数:否则称为合数.根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积:而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的.下面是一个java求100之内的素数简单示例 复制代码 代码如下: public class test { public static void main(String[] args) {  int i,n,k=0;     for (n = 3; n

  • JavaScript实现找质数代码分享

    好吧,也没有背景说明,没有高深技能,纯粹无聊,想找出10000内的所有质数.那么就开始了: function zhishu(num) { if (num == 1) { return false; } if (num == 2) { return true; } for (var i = 2; i <= Math.sqrt(num); i++) { if (num % i == 0) { return false; } } return true; } 使用实例: var zhishuArray

  • python实现挑选出来100以内的质数

    这里给大家分享的是使用python实现将100以内的质数挑选出来 代码非常简单,就不多废话了. """ 使用filter将100以内的质数挑选出来 """ # coding = utf-8 import math def func_get_prime(n): return filter(lambda x: not [x%i for i in range(2, int(math.sqrt(x))+1) if x%i ==0], range(2,n+

随机推荐