求 程序设计问题 判断一个整数是否是素数 用C++编写 并用程序流程图描述该算法

求 程序设计问题 判断一个整数是否是素数 用C++编写 并用程序流程图描述该算法,第1张

#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内的所有素数,写出算法。(要求为效率较高的算法)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9873520.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存