當前位置:首頁 » 編程語言 » c語言編程求素數

c語言編程求素數

發布時間: 2022-12-11 03:09:47

『壹』 c語言求素數

int fun(int n)
{ int a[10000], i,j, count=0;
/*將a數組賦值2-20*/
for (i=2; i<=n; i++)
a[i] = i;
i = 2;
/*將2到20之間2的偶數倍和2個偶數之和的數賦值0*/
while (i<n)
{
for (j=a[i]*2; j<=n; j+=a[i])
a[j] = 0;
i++;
/*判斷如果查找到得是已經被賦值為0的數則去尋找下一個數*/
while (a[i]==0)
i++;
}
printf("\nThe prime number between 2 to %d\n", n);
/*輸出在0-20之間的素數並用count計數*/
for (i=2; i<=n; i++)
if (a[i]!=0)
{
count++;
printf( count%15?"%5d":"\n%5d",a[i]);
}
return count;

『貳』 c語言中如何求素數

#include<stdio.h>
#include<math.h>
void main() // 這里不要搞錯了,main

{
int i,n;
printf("輸入一個整數n");
scanf("%d",&n);
n=abs(n);
if(n>2)
{
for(i=2;i<n;i++)// 在for下面跟個if判斷,如果你輸入4的話,這個程序列印兩次4不是

if(n%i==0&&n==i)
scanf("%d是素數",n); break ;// 這里應該是printf了吧,

else
scanf("%d不是素數",n); break;// 這樣會比較好點

}
else
scanf("%d不是素數",n);// 2就不是素數么,

}
這樣也有問題,當你輸入5的時候,for語句先判斷能否整除2,不能整除2的話,就列印不是素數,寫個函數是比較好的方法

『叄』 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;

}

(3)c語言編程求素數擴展閱讀:

1.素數的定義是只能被1和他本身整除,1不是素數.因此要判斷一個數是否為素數.就要判斷它能不能被比他小的所有素數整除,這是一個演算法.(寫到演算法時,我只能寫出用它除以比他小的所有數,造成運算速度低下)

2.如果一個質數大於根號n,而n可以除盡它,那麼n必然也可以除盡一個更小的質數。由此可以得到一個法2較快的素數判斷演算法

『肆』 用C語言如何判斷素數

按照如下步驟即可用C語言判斷素數:

1、首先打開visual C++ 6.0,然後點擊左上角的文件,再點擊新建。

『伍』 C語言中素數怎麼求

素數求法有很多種。。如果不要求時間暴力嘗試是可以的。用演算法的話個人認為還是用這個方法最快最好,就是把不是素數的數字排除,剩下的就是素數了。這個程序蠻簡單的。。你看看能不能理解ps:這是我們acm培訓的內容,很難得哦

void getprime(int n) //n是素數篩選區間
{
int i , j ;
bool flag[N];
memset ( flag , true , sizeof ( flag ) );
int count = 0; //記錄找到的素數個數
for( i=2 ; i<=n ; i++ )
{
if ( flag[i] ) prime[++count]=i; //未被篩掉的就是素數
for( j=1 ; j<=count && i*prime[j] <= n ; j++) // prime[j]表示第j個素數
{
flag[ i*prime[j] ] = false; //i*prime[j]表示被i篩掉的
if( i%prime[j]==0 ) break;
}
}
}
這個演算法是一個很快的演算法,詳細的解釋是舉例:
i=6的時候,prime[ ]={2,3,5}
第一次6篩掉了6*2=12,然後判斷6%2==2,break;假設循環沒有break,接著6即將篩6*3=18,而事實上18是被9篩掉的。

統一化分析:
不妨設i=p*r (p<r),執行break是因為i%p==0,故此時i篩掉的是x1=i*p=(p*r)*p;如果i可以篩掉x1後面的數x2,x2=i*q=(p*r)*q
由x2>x1-》q>p;那麼x2可以寫成x2=(q*r)*p,由於 q*r>i ,所以x2一定可以被i之後某個數字(q*r)篩掉,就不需要用i去篩掉。

『陸』 求判斷素數的C語言程序

C語言-尋找素數

附代碼:
#include<stdio.h>
#include<math.h>
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, 0.5));
for (j = 2; j <= c; j++)
{
if ((i / j - int(i / j)) == 0.0)
{
m++;//m是i被從2到根號i的j除了之後,商為整數,即發現j是i的因數的次數
}
}
if (m==0)
{
printf("找到素數:%d ", int(i));
n++;
sum = sum + i;
}
}
printf("大於等於%d,小於等於%d的素數的個數為:%d ", a, b, n);
printf("它們的和為:%d", sum);
return 0;
}

『柒』 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;i<n/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語言求素數

【例】判斷m是否素數。
N-S流程圖:
#include<math.h>
main()
{
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);
}

【例】求100至200間的全部素數。
#include<math.h>
main()
{
int m,i,k,n=0;
for(m=101;m<=200;m=m+2)
{
k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)
{printf(「%d」,m);
n=n+1;}
if(n%5==0)printf(「\n」);
}
printf(「\n」);
}

熱點內容
明日之後澤爾谷伺服器怎麼玩 發布:2025-01-21 21:50:09 瀏覽:459
楚留香掛機腳本 發布:2025-01-21 21:25:57 瀏覽:622
java的jms 發布:2025-01-21 21:22:45 瀏覽:693
上傳綁定事件 發布:2025-01-21 21:21:03 瀏覽:491
無法訪問已釋放的對象 發布:2025-01-21 21:13:50 瀏覽:968
android比ios 發布:2025-01-21 21:06:05 瀏覽:181
電腦mc連接伺服器秒退 發布:2025-01-21 21:05:16 瀏覽:534
我的世界寶可夢伺服器在哪找 發布:2025-01-21 21:00:06 瀏覽:437
pythonhtml解析器 發布:2025-01-21 20:43:03 瀏覽:459
如何設置多一個伺服器 發布:2025-01-21 20:41:24 瀏覽:799