本文目录一览:
c语言求素数的算法
根据素数的性质,代码设计如下:
设计一:判断n是否能被1~n-1整除,不能整除为素数
#includestdio.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间的整数整除,不能整除为素数
#includestdio.h
#includemath.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;
}
扩展资料:
1.素数的定义是只能被1和他本身整除,1不是素数.因此要判断一个数是否为素数.就要判断它能不能被比他小的所有素数整除,这是一个算法.(写到算法时,我只能写出用它除以比他小的所有数,造成运算速度低下)
2.如果一个质数大于根号n,而n可以除尽它,那么n必然也可以除尽一个更小的质数。由此可以得到一个法2较快的素数判断算法
参考资料:百度百科-scanf
参考资料:百度百科-质数
C语言求素数
#includestdio.h
#includemath.h
void main()
{
int x=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语言怎么求素数
在C语言中求素数有很多种方法。刚入门的话,最基本的就是根据素数的定义来判断一个数是不是素数。要判断一个数n是不是素数,就用一个循环,从2一直到n -1,如果都不能整除n,那么n就是一个素数,否则就不是素数。
改进一点的方法就是只要判断到n/2就可以了。再高效一点的办法,就只要判断到根号n就可以了。判断的依据是相同的。
如何求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语言求素数的办法?只需解题思路
/*求素数的三种方法
一:for(i=2;i=(n-1);i++)
if(n%i==0)i在2到n-1之间任取一个数,如果n能被整除则不是素数,否则就是素数
二:for(i=2;in/2;i++)
if(n%i==0) /*i在2到n/2之间任取一个数,如果n能被整除则不是素数,否则就是素数
三:for(i=2;i(n=sqrt(n));i++)
if(n%i==0) /*i在2到sqrt(n)之间任取一个数,如果n能被整除则不是素数,否则就是素数,在下省了下面的输出步骤*/
/*在本程序中使用第三种方法来求解*/
#include stdio.h
#include math.h
int main(void)
{
int i; /*外循环*/
int j; /*内循环*/
int flag; /*素数标志,flag为1则此数为素数*/
flag = 0;
//int n;
i = 2;
while( i = 100)
{
j = 2;
flag = 1; /*假设此数为素数*/
while(j = (int) sqrt(float(i)))
{
if(0 == (i %j))
flag = 0; /*根据第三种算法可知次数不为素数*/
j ++;
}
if(flag)
printf("%d\t",i);
i++;
}
printf("\n");
return 0;
}
c语言中如何求素数
思路:所谓素数是指只能被1和自身整除的数叫作素数,判断素数就可以从2到该数减一依次判断能否整除该数,如果能则不是素数,否则就是素数。
参考代码:
#includestdio.h
int isp(int n)//判断是否是素数,是返回1,否则返回0
{
int i;
for(i=2;in;i++)
if(n%i==0) return 0;
return 1;
}
int main()
{
int a;
scanf("%d",a);
if(isp(a))
printf("%d是素数\n",a);
else
printf("%d不是素数\n",a);
return 0;
}
/*
输出:
89
89是素数
*/