本文目錄一覽:
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是素數
*/
原創文章,作者:QKTF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/145567.html