首页 > 解决方案 > 使用以下方法查找包括两个数字之间的素数

问题描述

我需要使用函数找到两个数字之间并包含两个数字的素数。例如,使用 <<(3 23)>> 输出为 3 5 7 11 13 17 19 23

到目前为止,这是我的代码,但我遇到了麻烦。我做错了什么或如何改进我的解决方案?

#include<stdio.h>

int check_prime(int l,int u){
    int x, i;

    for (x = l; x <= u; x++){
        for (i = 2; i < x; i++){
            if (x % i == 0) break;
        }
    }
    if (i == x) return x;
}

int main(){
    int x, y, f;
    scanf("%d%d", &x, &y);
    f = check_prime(x, y);
    printf("%d", f);
    return 0;
}

标签: cfunction

解决方案


您正在打印返回的值check_prime(),这将是一个值。如果你想打印一个范围内的所有素数,我建议不要从check_prime()你那里返回值,而是打印该函数中的值。

#include<stdio.h>

void check_prime(int l,int u){
  int x,i;

  for(x=l;x<=u;x++){
    for(i=2;i<x;i++){
      if(x%i==0)
        break;
    }
    if(i==x){
      printf("%d ", x);
    }
  }

}

int main(){
  int x,y;
  scanf("%d%d",&x,&y);
  check_prime(x,y);
  return 0;
}

这是可执行代码:https ://repl.it/@fiveelements/PrintPrimeNumbersInARange?language=c


推荐阅读