Ⅰ 編程計算1到n的素數個數,循環結構
*問題分析與演算法設計
素數就是僅能衩1和它自身整除的整數。判定一個整數n是否為素數就是要判定整數n能否被除1和它自身之外的任意整數整除,若都不能整除,則n為素數。
程序設計時i可以從2開始,到該整數n的1/2為止,用i依次去除需要判定的整數,只要存在可以整除該數的情況,即可確定要判斷的整數不是素數,否則是素數。
*程序與程序注釋
#include<stdio.h>
void main()
{
int n1,nm,i,j,flag,count=0;
do{
printf("Input START and END=?");
scanf("%d%d",&n1,&nm); /*輸入求素數的范圍*/
}while(!(n1>0&&n1<nm)); /*輸入正確的范圍*/
printf("...........PRIME TABLE(%d--%d)............\\n",n1,nm);
if(n1==1||n1==2) /*處理素數2*/
{
printf("%4d",2);
n1=3;count++;
}
for(i=n1;i<=nm;i++) /*判定指定范圍內的整數是否為素數*/
{
if(!(i%2))continue;
for(flag=1,j=3;flag&&j<i/2;j+=2)
/*判定能否被從3到整數的一半中的某一數所整除*/
if(!(i%j))flag=0; /*若能整除則不是素數*/
if(flag) printf(++count%15?"%4d":"%4d\\n",i);
}
}