素数/质数的判断(C++)
2012-04-26 12:27
417 查看
思路:判断一个整数n是否为素数,只需用2到n-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。
判断定理:“n不能够被不大于根号n的任何素数整除,则n是一个素数”
用代买表示如下:
int is_prime = trure;
int i = 2;
while (i <= (sqrt(n))) // 当i小于n的平方根时
{
if (n % i == 0) // 如果i处以n等于0,
is_prime == false; // i不是素数
i++; // 把i加1
}
完整代码:
View Code
优化:
这个程序可以在找到第一个余数为0的数之后,即使推出循环,而不是继续循环下去,那只会浪费CPU资源。
int is_prime = trure;
int i = 2;
while (i <= (sqrt(n))) // 当i小于n的平方根时
{
if (n % i == 0) // 如果i处以n等于0,
{
is_prime == false; // i不是素数
break; // 不是素数,立即结束循环。
}
i++; // 把i加1
}
}
判断定理:“n不能够被不大于根号n的任何素数整除,则n是一个素数”
用代买表示如下:
int is_prime = trure;
int i = 2;
while (i <= (sqrt(n))) // 当i小于n的平方根时
{
if (n % i == 0) // 如果i处以n等于0,
is_prime == false; // i不是素数
i++; // 把i加1
}
完整代码:
#include <iostream> #include <cmath> using namespace std; int main() { int n; // Number to test for prime-ness int i; // Loop counter int is_prime = true; // Boolean flag... // Assume true for now. // Get a number from the keyboard. cout << "Enter a number and press ENTER: "; cin >> n; // Test for prime by checking for divisibility // by all whole numbers from 2 to sqrt(n). i = 2; while (i <= sqrt(n)) // While i is <= sqrt(n). { if (n % i == 0) // If i divides n, is_prime = false; // n is not prime i++; // add 1 to i. } // print results if (i <= sqrt(n)) cout << "Number is prime." << endl; else cout << "Number is not prime." << endl; return 0; }
View Code
优化:
这个程序可以在找到第一个余数为0的数之后,即使推出循环,而不是继续循环下去,那只会浪费CPU资源。
int is_prime = trure;
int i = 2;
while (i <= (sqrt(n))) // 当i小于n的平方根时
{
if (n % i == 0) // 如果i处以n等于0,
{
is_prime == false; // i不是素数
break; // 不是素数,立即结束循环。
}
i++; // 把i加1
}
}
相关文章推荐
- 【noip】【C++】关于素数或质数的两种常用判断算法;
- C++如何判断一个数字是否为质数
- C++判断五位以内的对称素数
- C++ - PAT - L1-028. 判断素数(天梯赛决赛题目)
- 判断数字m是否为素数(质数)
- C++进行质数判断
- 判断一个正整数是不是素数(C++)
- 学习C/C++语言:素数判断
- 判断素数、输出素数以及对称素数---C++
- C#l练习(用方法来实现:①判断一个给定的整数是否为“质数”。②计算1-100之间的所有质数(素数)的和
- 计蒜客|C++程序设计|判断质数
- 判断一个数是否为质数/素数——从普通判断算法到高效判断算法思路
- Python判断质数(素数)的方法讲解
- 用c++建立一个类PrimeNUM,求指定数据范围内的所有素数(质数)。
- 判断一个整数是否为素数(或称为质数)
- 判断素数(质数)
- 让用户输入一个正整数,判断该数是不是素数(质数)
- C++第11周项目3(1)——判断素数
- C++常见的质数判断算法
- 数学运算(素数质数整数浮点数判断/阶乘/byte数组转换为16进制/打印九九乘法表)