判断素数,用C++语言怎样编写程序

判断素数,用C++语言怎样编写程序,第1张

#include <iostream>

using namespace std;

int prime(int n);

int prime(int n)

{

int i;

for(i=2;i<=n/2;i++)

if(n%i==0)

return 0;

else

return 1;

return 0;

}

void main(){

int m;

cout<<"请输入这个数m=";

cin>>m;

if(prime(m))

cout << m << " 是素数 ";

else cout << m << " 不是素数 ";

}

#include<stdioh>

int main()

{

  int m, n;

  printf("请输入一个正整数:\n");

  scanf_s("%d", &m); 

  for (n=2; n < m - 1; n = n + 1)

  if (m % n == 0)

      break;

  if (n < m)

      printf("%d不是素数\n",m);

  else

      printf("%d是素数\n",m);

}

扩展资料

C语言中条件判断语句if和switch的用法

用 if 语句可以构成分支结构,它根据给的条件进行判定,以决定执行哪个分支程序段。首先要注意switch 的语法结构,不能有错误。

整形表达式的结果值如果等于值1,就执行语句1,如果等于值2,就执行语句2,如果表达式的值与任何 case 都不一样的话,那么就会执行 default 后面的默认语句,也可以没有默认语句,最后结束整个 switch 语句。

注意每个语句后面的 break,如果没有 break,break 会跳出当前的 case 语句,从而跳出整个 switch 语句。case 后面的标签只能是整形常量或者整形常量表达式,不能用变量作为 case 的标签。

#include<stdioh> main() {int i,j=0,a=0;/a存素数个数/ for(i=2;i<=100;i++) /i作被除数/ { for(j=2;j<=i;j++) /j做被除数/ if(i%j==0) break; /如果i能被j整除,则退出小循环/ if(i==j) { a++; /如果j=i,则说明i只能被自身整除,i为素数/ printf("%d ",i); /输出i(素数)/ } /返回大循环/ } /结束循环/ printf("\n"); /换行/ printf("%d\n",a); /输出素数个数/ }

#include<iostream>

#include<cmath>

using namespace std;

int main()

{

int a,b,i,flag=true;

cin>>a;

b=sqrt(a);

for(i=2;i<=b;i++)

{

if(a%i==0)

{

flag=false;

break;

}

}

if(flag)

{

cout<<a<<"是素数"<<endl;

}

else

{

cout<<a<<"不是素数"<<endl;

}

return 0;

}

扩展资料

其他方法判断一个数是否是素数:

/

判断一个数是否为素数

@param n

@returns {boolean}

/

var isPrime = function (n) {

if ( n === 0 || n === 1){

return false;

}

for (var i = 2; i <= Mathsqrt(n); i++) {

if (n % i === 0) {

return false;

}

}

return true;

}

源程序代码以及算法解释如下:

#define _CRT_SECURE_NO_WARNINGS

#include<stdioh>

int Func(int m)//判断函数

{

int n = 2;

while (n <= m && (m%n))//判断是否能被其他数整除

n++;

if (m == n)

return 1;

else

return 0;

}

int main()

{

int M_num;//定义变量

printf("请输入需要判断的数:\n");//文字提示

scanf("%i", &M_num);//循环输入数组元素

int i = Func(M_num);//判断是否是素数

if (i == 1)//输出结果

printf("输入的数是素数");

if (i == 0)

printf("输入的数不是素数");

printf("\n");

return 0;

}

程序运行结果如下:

扩展资料:

输出1-100之间的所有素数程序如下:

#include<stdioh>

int PrimeNumer(int x) //定义一个函数判断

{

assert(x > 0);  //判断

int i;   //被除数

for (i = 2; i < x; i++)

{

if (x%i == 0)

{

return 0;            //表示正常终止

}

}

return 1;       //只是给主调函数一个标志,说明他的执行过程中遇到异常情况。 然后就返回主调函数来处理,继续执行。 

}

int main()

{

int i,a;

int count = 0;

for (i = 2; i < 101; i++)

{

if (PrimeNumer(i))                           //调用函数来判断

{

count++;                             //加入了一个计数器

printf("%d\n", i);

}

}

printf("素数出现的次数%d", count);

system("pause");

return 0;

}

用6n+1,6n-1,判断简单。筛选法也可以

给出筛选法的代码

#include <stdio h>

#define MAXSIZE 200

#define DELETED 1

#define KEPT 0

void main(void)

{

int sieve[MAXSIZE+1]; / 待筛数组 /

int count = 1; / 素数总数 /

int prime;

int i, k;

printf("/n埃拉托斯散筛法");

printf("/n=========================");

printf("/n/n2 到 %d 之间的素数为:/n", MAXSIZE2+3);

for (i = 0; i < = MAXSIZE; i++)

sieve[i] = KEPT; / 初始状态未筛出 /

for (i = 0; i <= MAXSIZE; i++)

if (sieve[i] == KEPT) {

prime = i + i + 3;

count++;

for (k = prime + i; k <= MAXSIZE; k += prime)

sieve[k] = DELETED; //筛出

}

printf("/n%6d", 2);

for (i = 0, k = 2; i <= MAXSIZE; i++)

if (sieve[i] == KEPT) {

if (k > 10) {

printf("/n");

k = 1;

}

printf("%6d", 2i+3);

k++;

}

printf("/n/n总共有 %d 个素数。", count);

}

//

//

6n+1,6n-1法代码

#include<stdioh>

int main()

{

int data[5]={2,3,5,7};

int n;

scanf("%d",&n);

if(n==2||n==3||n==5||n==7)

{

printf("%d是素数\n",n);

}

else

{

if((n+1)%6==0||(n-1)%6==0)//n等于6k+1或6k-1

{

if(n%5&&n%7)

{

printf("%d是素数\n",n);

}

}

else printf("%d不是素数\n",n);

}

return 0;

}

C语言-寻找素数

附代码:

#include<stdioh>

#include<mathh>

int main()//原理:设ab=c,a<b,则有a<根号c<b。若设a恒小于根号c,则只需判断a是否为因数

{

int a, b;

printf("请按从小到大输入两个素数:");

scanf_s("%d %d", &a, &b);

int n = 0,m=0,sum = 0;

double i, j;//i是从a到b的待筛选数,j是从2到根号i的除数,要判断j是否为i的因数

for (i = a; i <= b; i++)

{

m = 0;

int c = int(pow(i, 05));

for (j = 2; j <= c; j++)

{

if ((i / j - int(i / j)) == 00)

{

m++;//m是i被从2到根号i的j除了之后,商为整数,即发现j是i的因数的次数

}

}

if (m==0)

{

printf("找到素数:%d\n", int(i));

n++;

sum = sum + i;

}

}

printf("大于等于%d,小于等于%d的素数的个数为:%d\n", a, b, n);

printf("它们的和为:%d", sum);

return 0;

}

以上就是关于判断素数,用C++语言怎样编写程序全部的内容,包括:判断素数,用C++语言怎样编写程序、用c++编程:输入一个数,判断其是不是素数、判断素数C语言编程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存