當前位置:首頁 » 編程語言 » c語言素數1100窮舉法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言素數1100窮舉法

發布時間: 2022-11-26 17:10:49

c語言,找1到1000的素數怎麼做呢

#include<stdio.h>
intmain()
{
charnum[1001];
inti,n;
memset(num,0x00,sizeof(num));
for(n=2;n<32;n++)
for(i=2;i*n<1001;i++)
num[i*n]=1;
printf("1到1000素數為: ");
for(i=2;i<1001;i++)
if(num[i]==0)
printf("%d ",i);
return0;
}
大概和素數表對照了一下,最後幾個數是對的.

❷ c語言求3-1100之間的素數(判斷素數由函數實現) bbs.bccn.net

#include "<a href="https://www..com/s?wd=stdio.h&tn=44039180_cpr&fenlei=---EUBtkn1fLnWcYnjnzP1nzrjnLPWR" target="_blank" class="-highlight">stdio.h</a>"
int isprime(int n) //判斷n是否為素數,是返回1,不是返回0
{
int i;
if(n==1)
return 0; //1不是素數
for(i=2;i<=n/2;i++) //如果從2開始,到這個數半值時,有一個數能被整除,則不是素數
if(n%i==0)
return 0;
//從2開始,到這個數一半值時,沒有一個能整除,則是素數
return 1;
}
int main()
{
int sum=0;
int i;
for(i=3;i<=100;i++)
if(isprime(i)==1) //是素數就加到sum上去,
sum+=i;
printf("3到100之間的素數之和為:%d\n",sum);
}

❸ c語言求1-1000素數的演算法問題

循環嵌套,外層循環是從1-1000的數字i(1排除,這你應該明白),內層是對數字i的素數判斷。
素數:除了1和它本身外沒有別的因子。也可以理解為:除了1和它本身,其他數來除它余數都不是0。
所以內層循環用從2開始到i的平方根(取整)依次求余,因為到了平方根以後,再增加除數,得到的商是小於平方根的,等於以前取過的除數。所以平方根以後不用再算了。
如果有=0的余數(if(i%j
==0)),說明正在判斷的數字不是素數,用break語句退出內層循環;如果沒有=0的余數,開關數w不歸零,if(w)後的語句執行,計數器n自加一次(找到一個素數),並列印當前檢驗數i。
列印前有一個if判斷,如果計數器n滿整10(能夠被10整除)就換行,也就是說這個素數表每行10個數。不換行數字鍵隔一個列表間隔(等於tab)。

❹ 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語言程序 求1000以內的素數

可以編寫一個素數考察函數,在主函數中調用該函數對1000以內的整數窮舉考察求解,也可以在主函數中直接對1000以內的整數窮舉考察求解。這里提供一個用篩選法求解的代碼,思路是聲明一個大於等於1000個元素的char型(int型當然也可以,這里只是為了減少空間開銷)數組並全部初始化為1,對下標不是素數的元素清0,最後依次輸出不為0元素的下標便是題解。為提高操作效率,用2~33間(33^2>1000了,所以考察已充分了)的素數去除大於這個素數而小於等於1000的不為0的數,能整除的便將這個下標的元素清0。當用小於33的最大素數考察完畢後,依次輸出數組中不為0的元素下標即可。代碼如下:

#include"stdio.h"
intmain(intargc,char*argv[]){
inti,j;
charm[1001];//聲明char型數組作為篩選對象
for(m[0]=m[1]=0,i=2;i<=1000;m[i++]=1);//m[0]和m[1]賦0,其餘賦1備選
i=2;//考察次數2~33,用期間的素數去除大於i且小於等於1000間不為0的數
while((j=i)<33){
while(!m[++j]);//取j為大於i的第一個不為0的數為起始考察對象
while(j<=1000){
if(j%i==0)//這個數若能被小於它的素數整除則以它為下標的元素清0
m[j]=0;
while(!m[++j]);//下一個不為0的數為考察對象
}
while(!m[++i]);//2~33間的下一個素數
}
for(j=i=0;i<=1000;i++)//以下是輸出
if(m[i])//不為0的數組元素的下標便是素數
printf(++j%20?"%4d":"%4d ",i);//每行輸出20個
if(j%20)
printf(" ");
return0;
}

運行結果如下:

❻ 如何用窮舉法在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;
}

❼ C語言求1~1000素數的簡單程序

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
void fun(int m,int *k,int xx[])
{
int i,j,n=0,t;
for(i=100;i<m;i++)
{
t=1;
for(j=2;j<i;j++)
if(i%j==0)
{
t=0;
break;
}
if(t==1)
xx[n++]=i;
}
*k=n;
}
void main()
{
int m,n,zz[100];
system("CLS");
printf("please enter the up number:\n");
scanf("%d",&n);
fun(n,&m,zz);
printf("\nthere are %dprime number less than %d:\n\n ",m,n);
for(n=0;n<m;n++)
printf("\n %4d",zz[n]);
}
提示叫你輸入數字的時候,你輸入1000就可以看見這中間的素數了

❽ C語言輸出100到一千之間所有素數

首先打開CodeBlocks,創建一個新項目。項目語言,選擇「c」,就可以寫程序判斷素數了,具體方法為:

1、創建好項目後,我們打開 「main.c」文件。

注意事項:

質數被利用在密碼學上,所謂的公鑰就是將想要傳遞的信息在編碼時加入質數,編碼之後傳送給收信人,任何人收到此信息後,若沒有此收信人所擁有的密鑰,則解密的過程中(實為尋找素數的過程),將會因為找質數的過程(分解質因數)過久,使即使取得信息也會無意義。

❾ 用C語言編程 列印出3到1100 之間的全部素數(判素數由函數實現)

/*求2個素數之間個數*/
#include<stdio.h>
#include<math.h>
int
count_prines(int,int);
void
main(void)
{
int
m,n,t;
printf("請輸入2個自然數:");
scanf("%d%d",&m,&n);
t=count_prines(m,n);
printf("在%d和%d之間有%d個素數
",m,n,t);
}
/*素數統計函數*/
int
count_prines(int
m,int
n)
{
int
i=0,s,k=0,tag=1;
if(m>n)s=m,m=n,n=s;
if(n==2)k=1;
else
if(n>2)
{
if(m<=2)k=1,m=3;
else
m+=1-m%2;
for(;m<=n;m+=2)
{
tag=1;
s=(int)sqrt(m);
for(i=3;tag&&i<=s;i+=2)
tag=m%i;
k+=(tag>0);
}
}
}
這個是統計兩個數之間的全部素數,很快的,希望對你有幫助!