#include <iostream>
#include <conioh>
#include <iomanip>
#include<stdioh>
#include<mathh>
using namespace std;
void main()
{
int m,i,k;
scanf("%d",&m);
k=sqrt(m); /只要求到m的算术平方根就可以了,不需要求到m的一半/
for(i=2;i<=k;i++) /用for循环简洁一点/
if(m%i==0)break;
if(i>k)
printf("%d is a prime number\n",m); /输出"这是一个素数"/
else
printf("%d is not a prime number\n",m); /输出"这不是一个素数"/
}
1、素数算法是素数判定算法,也即判断一个数是不是素数。
2、质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。
3、根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2。
要求高效率,则需采用筛法求,试除法的效率是很低的。筛法的源代码可如下。
#include <stdioh>
#include <mathh>
void CreatePrime(int primes, int n)
{
int i, j, s;
primes[0] = primes[1] = 0;
for(i = 2; i < n; i++)
primes[i] = 1;
s = sqrt(n);
for(i = 2; i<= s; i++) {
if(primes[i]) {
for(j = 2 i; j < n; j+=i)
primes[j] = 0;
}
}
}
void main( ) {
int i;
int IsPrime[1000];
CreatePrime(IsPrime, 1000);
for(i = 2; i < 1000; i++)
if(IsPrime[i]) printf("%d\t" i);
}
/To judge whether a number 'n' is prime number or not/
#include<stdioh>
#include<mathh>
int main()
{
int n,i,k,prime=1;
do
{
printf("Please input a positive number:\nn=");
scanf("%d",&n);
}while(n<=0);
if(1==n)
prime=0;
k=(int)sqrt(n);
for(i=2;prime&&i<=k;i++)
if(0==n%i)
prime=0;
if(prime)
printf("%d is a prime number\n",n);
else
printf("%d is not a prime number\n",n);
return 0;
}
以上就是关于求 程序设计问题 判断一个整数是否是素数 用C++编写 并用程序流程图描述该算法全部的内容,包括:求 程序设计问题 判断一个整数是否是素数 用C++编写 并用程序流程图描述该算法、什么是素数算法 素数算法的解释、C语言题目:求2~1000内的所有素数,写出算法。(要求为效率较高的算法)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)