素数的判断

1、遍历2以上N的平方根以下的每一个整数,是不是能整除N

 1 bool Isprimer(int n)
 2 {
 3     int flag=1;
 4     if (n<2)
 5         return false;
 6     if (n==2)
 7         return true;
 8     for (int i=2;i<=sqrt(double(n));i++)
 9     {
10          if (n%i==0)
11         {
12             flag=0;
13             break;
14         }
15     }
16     if(flag)
17         return true;
18     else
19         return false;
20
21
22 }

2、遍历2以上N的平方根以下的每一个素数,是不是能整除N;(这个方法是上面方法的改进,但要求N平方根以下的素数已全部知道)

时间: 2024-10-14 12:52:21

素数的判断的相关文章

[转] 多种方法实现素数的判断

素数的定义: 指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数.换句话说,只有两个正因数(1和自己)的自然数即为素数. 我将给出几种实现对自然数n进行素数的判断方法,主要从代码的执行效率上考虑这个问题. 首先,根据素数的定义,大家都会想到的一个方法就是遍历2~n-1,如果n能被其中的数整除,则n不是素数,否则为素数. 代码: //方法1(遍历)int prime_1(int n){ for(int i=2;i<n;i++) { if( n%i==0 ) return

对素数的判断和素数个数的判断

应该说这是比较高效的解题方法了吧. 素数个数计数: class Solution { public:     int countPrimes(int n) {        bool* a = new bool[n];        for(int i=2; i*i<n; i++) {           if(!a[i]) {               for(int j=i; i*j<n; j++) {                   a[i*j] = true;          

Num 19: 最大公约数.最小公倍数.素数的判断

在c语言的学习之中,经常会碰到: 计算最大公约数,最小公倍数和素数判断的问题: 在这里由浅入深总结一下: 1. 最大公约数与最小公倍数 : 由数学知识我们知道:       两个数的最小公倍数 = 这两个数的乘积 / 两个数的最大公约数:    所以求最大公约数和最小公倍数的问题其实是一类问题:  ①.最小公倍数:      方法一:        若 x>y ,从 x开始,判断x能否被y整除(x%y==0):        若能够整除,x既为最小公倍数:        若不能整除,计算2x,3

多种方法实现素数的判断

原文:多种方法实现素数的判断 素数的定义: 指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数.换句话说,只有两个正因数(1和自己)的自然数即为素数. 我将给出几种实现对自然数n进行素数的判断方法,主要从代码的执行效率上考虑这个问题. 首先,根据素数的定义,大家都会想到的一个方法就是遍历2~n-1,如果n能被其中的数整除,则n不是素数,否则为素数. 代码: 1 //方法1(遍历) 2 int prime_1(int n) 3 { 4 for(int i=2;i<n;i+

素数的判断(大数据,大规模)

素数的判断其实谁都会,所以这篇跳过简单的素数判断,直接学习如何快速判断1到N的素数,以及判断大数据是否为素数. 现在我们先学习埃氏筛选法,此法实用与大规模判断素数,比如1到N的素数有那些啊,等等等等. 这个算法流弊哦,与辗转相除法一样古老哇. 首先,将2到n范围内的所有整数写下来.其中最小的数字2是素数,将表中2的倍数都划去.表中剩余的最小数字是3,不能被更小的数整除,是素数.如果表中最小的是m,m为素数,将m的倍数划去. 2 3 4 5 6 7 8 9 10 11 12 2 3 - 5 - 7

大神新交了一个素数的判断方法

1 int prime(int n)//判断是否为素数 2 { 3 int i; 4 for(i = 1; i < sqrt((double)n);i++) 5 { 6 if (n % i == 0 ) 7 { 8 return 0; 9 } 10 } 11 return 1; 12 } 然而,他并没有给我解决了我之前素数中的问题,

求100-200间所有素数;判断1000-2000年间的闰年

#include<stdio.h>//求素数 #include<math.h> int main() { int i, j, k,n=0; for (i = 100; i < 200; i++) { k = sqrt(i); for (j = 2; j <= k; j++) { if (i%j == 0)  break; if (j+1>k) { printf("%d ", i); n++; if (n % 10 == 0) { printf(

prime,素数的判断——c语言

输入一个数a,求他是否是素数(用函数) 程序: #include<stdio.h> int prime(int a)-----------------------------------//定义一个prime的自定义函数 { int i,y=0; for(i=1;i<=a;i++) { if(a%i!=0) y++; }------------------------------------------//判断是不是素数 return y;------------------------

hdu 5391 Zball in Tina Town (素数的判断)

Problem Description Tina Town is a friendly place. People there care about each other.Tina has a ball called zball. Zball is magic. It grows larger every day. On the first day, it becomes 1 time as large as its original size. On the second day,it wil

Java 求1-100以内的所有素数,判断一个数是不是素数

质数(prime number)又称素数,有无限个. 质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数. 小师弟问了我个这么个联系题,虽然看似简单,但是,大家都觉得简单的东西,没必要分享的话,那初学者,不是很痛苦吗? 所以,我就给小师弟示范了一下.方便初学者,看看怎么写代码. 代码内部的细节(都是针对没开始工作,或者刚刚工作的哥们): 1,模块化思想. 先拆分需求,本来让你求1-100以内的素数,你不能上来就干,先拆分先考虑怎么确定一个数是不是素数,然后再复用到所有.