【问题标题】:Need help making prime numbers row in {c}需要帮助在 {c} 中制作素数行
【发布时间】:2015-11-06 21:43:34
【问题描述】:

我需要在 {c} 中编写一个程序,为输入的数字提供质数(例如用户输入 50。写回 229) 所以,我在制作循环时被卡住了。 我想为 row[100] 定义 row[0]=2,row[1]=3 然后我使 i=4 并尝试创建一个循环,将数字 i 与每个数字分开在行中(因为我知道的那些是素数)并获取模块(0后的数字,不知道英语怎么说),然后如果他们都有模块!= 0那么我知道它是素数和我想将它添加到行中。

那么有没有人可以帮我写这行?提前非常感谢:)

#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;
}

好的,所以我需要将我要求模块的部分从区分机智 2 和 3 更改为要求模块从此时从行中的所有数字中分离。谢谢你的帮助

【问题讨论】:

  • 我投票决定将此问题作为题外话结束,因为 SO 不是编码服务。显示您的代码并告诉我们您的具体问题出在哪里。
  • 或者直接在右上角的那个小框中输入[c] prime。
  • @Olaf 我添加了代码,你能帮帮我吗?谢谢

标签: c loops while-loop do-while


【解决方案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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-11
    • 2018-05-21
    • 2014-06-27
    • 1970-01-01
    相关资源
    最近更新 更多