1樓:小魚冒泡
問題:求100-200之間的素數。
分析:設n是100到200之間的乙個數,那麼如果n不是乙個素數,一定有乙個2-15之間的乙個因數。為什麼是15,因為15*15 = 225>200.
那麼現在我們用排除法,用2,3,4……,15除100-200之。
間的數如果這個數能整出說明就不是素數。
#include
int main()
int array[120]; 用來儲存100-200之間的每個數。
int i,j;
for (i = 0;i<101;i++)
array[i]=100+i; /初始化這個陣列。
for (j=2;j<=15;j++)用來遍歷2-15之間的這14個數。
for(i=0;i<101;i++)用來遍歷100-200之間的每個數。
判斷試的數array[i]能否被j整出 array[i]=0的說明已經判斷了不是素數。
array[i]=0; /不是素數就將該數置為0
for (i = 0;i<101;i++)
if (array[i]!=0) /輸出所有沒有置為0的數,也就是100-200之間的素數。
printf("%d ",array[i]);
執行結果:<>
其實這個題目中還可以優化,不用用2-15之間的每個數去試,只要用2-15之間的素數去試,至於為什麼,lz可以自己思考哈,希望能對你有幫助。
2樓:文皓
# include
int main()
int i,j,t=0;//定義三個整型變數,i,j控制迴圈,t判斷下面的if語句是否執行了。
for(i=100;i<=200;i++)t=2;for(j=2;jif(i%j==0)//如果對從2到i-1的數遍歷取餘,若取餘不為零,則說明i不為素數,則跳出此迴圈。
break;
t++;若每次遍歷都沒執行以上的break語句,則說明該數為素數,t自增一次。
if(t==i)//若t等於i,說明i是素數,則輸出素數。
printf("%5d",i);
return 0;
用c語言編一程式,輸出200~300之間的全部素數,求解啊
3樓:西方慘敗
樓上的樓上演算法可以改進:
第一,200以上偶數一定不是素數。
第二,17*17=289,就是說,300以內的合數,最小的因子最大隻能是17。所以,程式可以改為下面這種,計算時間將大大地減少:
#include
void main()
就可以了。迴圈比原來減少一半每次迴圈一共只要比6次。
4樓:網友
樓上的程式可以優化一下的。
for(k=2;k改成for(k=2;k 5樓:匿名使用者 可以對樓上**優化一下。 #include #include int main() return 0;} include void main include void main float a,b,h 梯形的上底 下底和高 printf 請依次輸入梯形的上底 下底和高 scanf f f f a,b,h printf 梯形的面積 f a b h 2 擴充套件資料 c語言特有特點 1.c語言是一個有結構化... include main printf sum lf n sum include void main printf sum lf n sum c語言編寫函式求 1 1 2 1 3 1 4 1 5 1 6 1 n的值怎麼做?結果是什麼呢?需要準備的材料分別有 電腦 c語言編譯器。1 首先,開啟c語言編... 晚上有時間看看,include stdio.h include string.h void add float m,float n void sub float m,float n void mult float m,float n void div float m,float n void mai...用C語言編寫求梯形面積的程式, 求助 用C語言編寫求梯形面積公式的簡易計算器
用c語言編寫函式求表示式1,用c語言編寫函式求表示式11213141516171n的值
c語言程式設計題急求要求用c語言編寫題目二