当前位置:首页 » 编程语言 » c语言判断素数穷举法
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言判断素数穷举法

发布时间: 2022-09-20 18:16:46

A. 如何用穷举法在1—100之间找出所有的质数用c语言编程实现

对1-100的所有数进行遍历,逐一判断每个数是否为素数。

判断素数的算法有很多,比较基础的是逐一求余,如果除了1和本身外,还有其它数可以整除那么就不是素数。

代码如下:

#include<stdio.h>
intmain()
{
inti,j;
for(i=2;i<100;i++)
{
for(j=2;j<i;j++)
{
if(i%j==0)break;//可以整除,退出循环。代表不是素数。
}
if(j==i)//没有提前退出循环,代表是素数,打印。
printf("%d,",i);//打印i值。
}

return0;
}

B. 如何用c语言判断一个数是不是素数

判断一个整数m是否是素数,只需把m被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。思路1)的代码:

#include <stdio.h>

int main(){

int a=0; // 素数的个数

int num=0; // 输入的整数

printf("输入一个整数:");

scanf("%d",&num);

for(int i=2;i<num;i++){if(num%i==0){a++; // 素数个数加1}}

if(a==0){printf("%d是素数。 ", num);}else{printf("%d不是素数。 ", num);}return 0;}

C. C语言用穷举法判断素数问题,不知道哪里出了毛病

主要是双引号用得不对,应该用英文的双引号,你改过来就对了。。。
#include<stdio.h>
#include<math.h>
int main(void)
{ int m,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)
break;
if(i>=k+1)
printf("%d is a prime number\n",m);
else
printf("%d is not a prime number\n",m);
return 0;
}
这个就可以了。。。

D. c语言判断素数

根据初等数论,一个整数不能整除他的平方数之内的整数就是素数..
#include<stdio.h>
#include<math.h>
main(){
int
n,j,sum=0;
for(n=3;n<=300000;n+=2){
for(j=2;j<=sqrt(n)-1;j++){
if((n%j)==0)
break;
}
if(j>sqrt(n)-1){
printf("%d,
",n);
sum=sum+1;
}
}
printf("\
sum=%d\
",sum);
}
这个程序是找出3到300000内的所有素数...也可以根据你的范围修改程序上面程序中300000的值!值的一提的是这个程序运行的时间5秒左右,因为利用了初等数论和筛选法......直接把偶数(大于3)去掉不做判断..如果用穷举法(举个例:300000中最大的素数为299993,运行到这个数时是将299993从2开始除一直到299992才判断结束!这就说就是这一个数就做了判断299992次判断.而300000内的素数有26121个..)程序运行时间要2分多钟!!!!我在本机上测试过..可见程序的算法是多么重要..

E. c语言求素数的算法

根据素数的性质,代码设计如下:

设计一:判断n是否能被1~n-1整除,不能整除为素数

#include<stdio.h>

int main()

{

int i, n;

scanf("%d", &n);

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

{

if (n%i == 0)

break;

}

if (i < n) printf("This is not a prime.");

else printf("This is a prime.");

return 0;

}

设计二:判断n是否能被2~√n间的整数整除,不能整除为素数

#include<stdio.h>

#include<math.h>

int main()

{

int n,i;

double k;

scanf("%d", &n);

k = sqrt(n);

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

{

if (n%i == 0) break;

}

if (i <=k) printf("This is not a prime.");

else printf("This is a prime");

return 0;

}

(5)c语言判断素数穷举法扩展阅读:

1.素数的定义是只能被1和他本身整除,1不是素数.因此要判断一个数是否为素数.就要判断它能不能被比他小的所有素数整除,这是一个算法.(写到算法时,我只能写出用它除以比他小的所有数,造成运算速度低下)

2.如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。由此可以得到一个法2较快的素数判断算法

F. 用C语言如何判断素数

素数又称质数,所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被 2~16 的任一整数整除。

思路1、判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数。

思路2、判断方法还可以简化。

m 不必被2~m-1之间的每一个整数去除,只需被2~√m之间的每一个整数去除就可以了。如果 m 不能被2~√m间任一整数整除,m必定是素数。例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数。


原因:因为如果m能被2~m-1之间任一整数整除,其二个因子必定有一个小于或等于√m,另一个大于或等于√m。

例如16能被2、4、8整除,16=2*8,2小于 4,8大于4,16=4*4,4=√16,因此只需判定在2~4之间有无因子即可。


两种思路的代码请看解析。

拓展资料:

素数(prime number)又称质数,有无限个。素数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

网络——C语言

G. 如何用c语言编程判断一个数是不是素数

方法一:

#include<stdio.h>

int main(){

int i,j;

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

scanf("%d",&i);

if(i<2)

printf("小于2,请重新输入。\n");

elseif(i%2==0)

printf("%d不是一个素数。\n",i);

else{

for(j=2;j<=i/2;j++){

if(i%j==0){

printf("%d不是一个素数。\n",i);

break;

if(j>i/2){

printf("%d是一个素数。\n",i);

break;

方法二:

#include<stdio.h>

int main(){

int a=0;

int num=0;

scanf("%d",&num);

for(inti=2;i<num-1;i++){

if(num%i==0){

a++;

if(a==0){

printf("YES\n");

}else{

printf("NO\n");

方法三:

#include"stdio.h"

int main(){

printf("\t\t\t\t\thelloworld\n");

int a,i;

do{

printf("inputnumberjudgeprimenumber:\n");

scanf("%d",&a);

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

if(a%i==0)break;

if(i==a)

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

else

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

}while(a!=0);

H. 用C语言如何判断素数

所谓素数是指除了1和它本身以外,不能被任何整数整除的数,例如17就是素数,因为它不能被2~16的任一整数整除.因此判断一个整数m是否是素数,只需把m被2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数
另外判断方法还可以简化.m不必呗2~m-1之间的每一个整数去除,只需被2~√m之间的每一个整数去除就可以了.如果m不能被2~√m间任一整数整除,m必定是素数.例如判别17是是否为素数,只需使17被2~4之间的每一个整数去除,由于都不能整除,可以判定17是素数.(原因:因为如果m能被2~m-1之间任一整数整除,其二个因子必定有一个小于或等于√m,另一个大于或等于√m.例如16能被2,4,8整除,16=2*8,2小于4,8大于4,16=4*4,4=√16,因此只需判定在2~4之间有无因子即可)
#include
#include
void main()
{
int m,i,k;
printf("请输入一个整数:");
scanf("%d",&m);
k=(int)sqrt(m);
for(i=2;ik)
printf("%d 是素数.\n",m);
else
printf("%d 不是素数.\n",m);
}

I. C语言如何使用自定义函数判断素数

#include <stdio.h>

int fun(int x)//

{

if(x<2)

return 0;//返回0,非素数

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

if(x%i==0)

return 0;

return 1;//返回1,素数

}

int main()

{

int n;

scanf("%d",&n);

if(fun(n)==1)

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

else

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

return 0;

}