如何判断是否素数和某段数字中的素数有哪些

所谓素数是指除了1和它本身以外,不能被任何整数整除的数。例如17就是素数,因为它不恩那个被2~16的任一整数整除。因此判断一个整数nNum 是否素数。只需要把nNum 被2~nNum-1之间的每一个整数去除。如果都不恩那个被整除,那么nNum就是一个素数。

这里我们也可以用一个简单的办法只需被2~√m之间的每一个整数去除就可以了。

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

int isPrimeNum(int nNum);

int main()
{
    int nNum;
    int nFlag = 0;
    printf("输入一个数字,判断是否素数:\n");
    scanf("%d", &nNum);
    if(nFlag = isPrimeNum(nNum))
        printf("这是一个素数。\n");
    else
        printf("这不是一个素数。\n");
    return 0;
}

int isPrimeNum(int nNum)
{
    int nFlag = 0;
    int nTmp;
    int i;
    nTmp=sqrt(nNum);
    for(i=2;i<=nTmp;i++)
        if(nNum%i==0)
            break;
    if(i>nTmp)
        return nFlag = 1;
    else
        retrun nFlag = 0;
}
时间: 2024-11-06 21:32:21

如何判断是否素数和某段数字中的素数有哪些的相关文章

判断任意数字是否为素数

素数又被称质数(Prime number)指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数).大于1的自然数若不是素数,则称之为合数. 用python实现判断一个数字是否为素数. 第一种方法整除法,通过对数字范围以内的数字进行循环整除,效率很低,数字大的时候耗时,代码实现: def is_prime(n): if n == 2: return True if n % 2 == 0 or n <= 1: return False sqr =

【数据结构】C语言实现,寻找n个数字中的所有素数

1 #include <iostream> 2 #include <stdio.h> 3 #include <math.h> 4 5 /* run this program using the console pauser or add your own getch, system("pause") or input loop */ 6 7 //判断用户输入的数据是否大于2的正整数 8 bool isNaN(int number) { 9 if(nu

java中判断一个字符串是否“都为数字”和“是否包含数字”和“截取数字”

在javascript中有一个方法isDigit()使用来判断一个字符串是否都是数字,在java的字符串处理方法中没有这样的方法,觉得常常需要用到,于是上网搜了一下,整理出了两个用正则表达式匹配的判断方法,如下: // 判断一个字符串是否都为数字 public boolean isDigit(String strNum) { return strNum.matches("[0-9]{1,}"); } // 判断一个字符串是否都为数字 public boolean isDigit(Str

#定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型。其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数)。

1 #定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型.其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数). 2 def get_num(num): 3 if type(num)!= list: 4 return '您传入的不是列表!' 5 else: 6 for i in num: 7 if not isinstance(i,int): 8 return '请全部传入整数!' 9 return list(filter(lambda x:x

swift 判断输入的字符串是否为数字

// 判断输入的字符串是否为数字,不含其它字符 func isPurnInt(string: String) -> Bool { let scan: Scanner = Scanner(string: string) var val:Int = 0 return scan.scanInt(&val) && scan.isAtEnd }

判断一个数字中是否包含两个相同的子串并输出

功能:判断一个数字中是否包含两个相同的子串(字串长度至少大于等于2),并输出(仅输出第一次相同的子串) 1 package ren.laughing.test.problem; 2 3 import java.util.Scanner; 4 5 /** 6 * 功能:判断一个数字中是否包含两个相同的子串(字串长度至少大于等于2),并输出(仅输出第一次相同的子串) 7 * 8 * @author Laughing_Lz 9 * @time 2016年7月4日 10 */ 11 public cla

C# 判断一字符串是否为合法数字(正则表达式)

判断一个字符串是否为合法整数(不限制长度) public static bool IsInteger(string s) { string pattern = @"^\d*$"; return Regex.IsMatch(s,pattern); } 判断一个字符串是否为合法数字(0-32整数) public static bool IsNumber(string s) { return IsNumber(s,32,0); } 判断一个字符串是否为合法数字(指定整数位数和小数位数) //

python判断unicode是否是汉字,数字,英文,或者其他字符

下面这个小工具包含了 判断unicode是否是汉字,数字,英文,或者其他字符. 全角符号转半角符号. unicode字符串归一化等工作. #!/usr/bin/env python # -*- coding:GBK -*- """汉字处理的工具: 判断unicode是否是汉字,数字,英文,或者其他字符. 全角符号转半角符号.""" def is_chinese(uchar): """判断一个unicode是否是汉字&

【华为OJ平台练习题】统计一段字符串中含有空格、英文、数字的个数

//统计一段字符串中含有空格.英文.数字的个数 #include <iostream> using namespace std; void processString(char* s) { int n = strlen(s); int kg=0; int shuzi=0; int yingwen=0; if(n>0) { for(int a=0;a<n;a++) { if(s[a]==' ') kg++; if(s[a]<='9'&&s[a]>='0')