數素數

題目描述

令Pi表示第i個素數。現任給兩個正整數M <= N <= 10000,請輸出PM到PN的所有素數。


輸入描述:

輸入在一行中給出M和N,其間以空格分隔。



輸出描述:

輸出從PM到PN的所有素數,每10個數字佔1行,其間以空格分隔,但行末不得有多餘空格。


輸入例子:

5 27


輸出例子:

11 13 17 19 23 29 31 37 41 43

47 53 59 61 67 71 73 79 83 89

97 101 103


參考代碼:

#include<stdio.h> 
#include<stdlib.h>
#include<math.h>
#include<stdbool.h>
bool is_prime(int n){
    if (n <= 3){
        return n > 1;
    }
    int i;
    for (i = 2; i<= sqrt(n); i++){
        if (n%i == 0){
            return false;
        }
    }
    return true;
}
int main()
{
    int start,end,i=0,num=0;
    scanf("%d %d",&start,&end);
    int data[end];
    for(i=2;num<end;i++)
      if(is_prime(i)){
          data[num++]=i;
      }
    for(i=start-1;i<end;i++)
      if(i<end-1){
          if((i-start+2)%10==0)
            printf("%d\n",data[i]);
          else
          printf("%d ",data[i]);
      }
      else
        printf("%d\n",data[i]);
    return 0;
}


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