2015-11-06 31 views
-1

我需要在{c}中製作一個程序,該程序會爲我輸入數字的素數(例如用戶輸入50.回寫229) 因此,當做循環。 我打算爲行[100]定義行[0] = 2,行[1] = 3,然後我讓我= 4,並嘗試做一個循環,我會把數字i與每一個(因爲我知道的是素數),並得到模塊(0之後的數字,不知道它是如何說英語),然後如果他們都有模塊!= 0,那麼我知道它是質數我想將它添加到行中。在{c}中需要幫助製作素數行

那麼有人可以幫我寫這行嗎?非常感謝提前:)

#include <stdio.h> 
int main() 
{ 
    int i,numb=4,position,temp,temp1,row[100]; 
    printf(" enter position (1-100)\n"); 
    scanf("%d",&position); 
    if (position>100||position<0) 
    { 
     printf("error,enter position between 1 and 100"); 
     return(0); 
    } 
    row[0]=2; 
    row[1]=3; 
    i=2; 
    do 
    { 
      temp=numb%2;      
      temp1=numb%3; 
      if (temp!=0 && temp1!=0) 
      { 
       row[i]=numb; 
      i++; 
      } 
      numb++; 
     } 
     while (i<100); 
     printf("%d. prime number is %d",position,row[position]); 
     return 0; 
} 

好了,我需要改變的部分,我問模塊從deviding機智2和3,要求從模塊在那一刻,所有的數字deviding行。感謝您的幫助

+2

我投票結束這個問題作爲題外話,因爲SO是沒有編碼服務。顯示你的代碼並告訴我們你的**特定**問題在哪裏。 – Olaf

+0

或者只需在右上角的那個小盒子裏輸入'[c] prime'。 – user3386109

+0

@Olaf我添加了代碼,你能幫我嗎?謝謝 –

回答

1
#include <stdio.h> 

#define MAX_N 100 

int main(void){ 
    int i, odd, temp, position, n = 0, row[MAX_N]; 

    row[n++]=2; 
    row[n++]=3; 
    for(odd = 5; n < MAX_N; odd += 2){ 
     int is_prime = 1;//true 
     for(i = 1; i < n; ++i){ 
      temp = row[i]; 
      if(temp * temp > odd) 
       break; 
      if(odd % temp == 0){ 
       is_prime = 0;//false 
       break; 
      } 
     } 
     if(is_prime) 
      row[n++] = odd; 
    } 

    printf(" enter position (1-%d)\n", MAX_N); 
    scanf("%d", &position); 
    if (position > 100 || position < 1){ 
     printf("error,enter position between 1 and %d\n", MAX_N); 
     return 0; 
    } 
    printf("%d. prime number is %d", position, row[position - 1]); 

    return 0; 
}