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

c语言求素数iu003en

发布时间: 2022-04-17 07:18:31

‘壹’ c语言中如何求素数

思路:所谓素数是指只能被1和自身整除的数叫作素数,判断素数就可以从2到该数减一依次判断能否整除该数,如果能则不是素数,否则就是素数。

参考代码:

#include<stdio.h>
intisp(intn)//判断是否是素数,是返回1,否则返回0
{
inti;
for(i=2;i<n;i++)
if(n%i==0)return0;
return1;
}
intmain()
{
inta;
scanf("%d",&a);
if(isp(a))
printf("%d是素数 ",a);
else
printf("%d不是素数 ",a);
return0;
}
/*
输出:
89
89是素数
*/

‘贰’ c语言怎么求素数

在C语言中求素数有很多种方法。刚入门的话,最基本的就是根据素数的定义来判断一个数是不是素数。要判断一个数n是不是素数,就用一个循环,从2一直到n -1,如果都不能整除n,那么n就是一个素数,否则就不是素数。
改进一点的方法就是只要判断到n/2就可以了。再高效一点的办法,就只要判断到根号n就可以了。判断的依据是相同的。

‘叁’ 求"求素数的C语言程序"

#include <stdio.h>

int main()

{

int a=0;

int num=0;

int i;

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

scanf("%d",&num);

for(i=2;i<num;i++){

if(num%i==0){

a++;

}

}

if(a==0){

printf("%d是素数。 ", num);

}else{

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

}

return 0;

}

(3)c语言求素数iu003en扩展阅读:

质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。

基本算法:若 k%m==0 则说明 k 不是素数。

判断整数n是否为素数——采用枚举法求解。

采用枚举算法解题的基本思路:

(1)确定枚举对象、枚举范围和判定条件;

(2)枚举可能的解,验证是否是问题的解。

枚举算法的一般结构:while循环。

参考资料来源:网络-枚举法




‘肆’ c语言 求素数的算法!!!(要更快点的方法)

我有个慢的算法
int isPrime(int n)
{
int i, divide;

i = 1;
divide = 0;
while (i <= n) {
if (n % i == 0) divide++;
i++;
}
return (divide == 2);
}
稍快一点的办法
int isPrime(int n)
{
int i, temp;

for (i = 2, temp = (int)sqrt(n); i <= temp;i++) {
if ( n % i == 0) return 0;
}
return 1;
}

‘伍’ C语言求素数

#include<stdio.h>
#include<math.h>
voidmain()
{
intx=100,d=999,a,i,temp;

for(x;x<=d;x++)
{
temp=0;
a=sqrt(x);
for(i=2;i<=a;i++)
{

if(x%i==0)
{
temp=1;
break;
}
}

if(temp==0)
printf("%d",x);
}
}

‘陆’ 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;

}

(6)c语言求素数iu003en扩展阅读:

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

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

‘柒’ 如何求C语言素数

如果一个数是素数,只要判断他是否能被2到这个数的开方之间的数整除就行了。

int flag=0;

if(m==2){ //先判断是不是2

flag=1;

}

else{

for(int i=2;i<=sqrt(m);i++){

flag=1;

if(m%i==0){ //不是素数

flag=0;

break;

}

}

}

return (flag==1)?m:-1; //判断是否为1,为1输出m,否则输出-1 ,-1表示不是素数

如果是求某个范围的素数,可以连续调用这个方法,上面是常规的方法,还有更好的方法自己去查一下。

‘捌’ 求素数的C语言程序!

素数,也叫质数,就是指除了1和该数本身以外,不能被其他任何整数整除的正数。

#include<stdio.h>#include<math.h>voidmain(){intm,k,i,n=0;for(m=1;m<=200;m=m+2){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf("%5d",m);n=n+1;

‘玖’ c语言求素数

楼上说的不对,其实不是什么if-else语句的问题,本来就是应该for循环内运行if(a%i==0)语句的,return1;语句是在for循环外的,表示没有找到a的约数时才return1;也即表示a为素数。这里没什么问题的,
问题存在于你的while语法:你写的while(x<=100);注意你写的while后面有个分号,其实这就已经构成一个while循环了。循环内容就是“;”表示什么也不做,而循环条件是1<=100为真的,程序运行到这里就进入死循环。。。从而出现你所说的“程序没有错,可是运行之后除了‘1到100之间的所有素数是:’这行字之外啥也没有,”
只要删除while(x<=100);后面的分号就可以了,即
#include<stdio.h>
intprime(int);
main()
{
intx;
printf("1到100之间的所有素数是:\n");
x=1;//这里最好是从2开始的,否则会出现1也是素数的结果。或者
//你在intprime(int);函数中单独判断一下参数为1的特殊情
//形。
while(x<=100)//这里不要分号。但do-while语句后面是有分号的
{
if(prime(x))
printf("%d",x);
x=x+1;
}
}
intprime(inta)
{
inti;
for(i=2;i<=a/2;i++)
if(a%i==0)
return0;
return1;
}