輸出所有小於等於n的素數(要求1)每行輸出10個(要求2)較優的算法

方法:

若n是素數,則n不能被2~n的任何整數整除!

代碼:

 

 

#include“stdio.h”
#include"math.h"
//判斷是否爲素數
bool prime(int n){
    int i;
    for(i=2;i<=(int)sqrt(n);i++){
        if(n%i==0)
        return false;
    }
    return true;
}
void main(){
    int n,i,j=0; //j累計素數個數,n指求那個數之前的素數
    printf("n:");
    scanf("%d",&n);
    printf("所求的爲小於等於n的素數:\n",n);
    if(n>2){
    printf("M",2);
    j++;
    }
    for(i=3;i<=n;i+=2){
        if(prime(i)){
            printf("M",i);
            if(j!=0&&++j==0) //每10個換一行
            printf("\n");
        }
    }
    printf("\n素數一共有%d個",j);
}

 結果:

 

輸出所有小於等於n的素數(要求1)每行輸出10個(要求2)較優的算法


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章