关于##include#判断素数的问题,如何解决

判断10到20的素数

#include <stdio.h>
int main()
{
   int i=0;
   int t=0;
   int s=0;
   for(i=10;i<=20;i++)
   {
       for(t=2;t<i;t++)
       {
           if(i%t==0)
              s++;       
       }
      if(s==0);
      printf("%d\n",i);
   }
   
}


输出结果为10到20,求解达

修改如下,改动处见注释,供参考:

#include <stdio.h>
int main()
{
    int i = 0;
    int t = 0;
    int s = 0;
    for (i = 10; i <= 20; i++)
    {
        s = 0;  // 这行将 s 重新赋值为 0    修改
        for (t = 2; t < i; t++)
        {
            if (i % t == 0) 
                s++;
        }
        if (s == 0)// ; 这行最末尾多了';' 分号 修改
            printf("%d\n", i);
    }
}

第二个for循环之前加个s=0,然后去掉14行的if后面的分号即可。

修改如下:

参考链接:


#include <stdio.h>
int main()
{
   int i=0;
   int t=0;
   int s=0;
   for(i=10;i<=20;i++)
   {
       // 记录当前数字i,可以被2到i-1之间的数整除的个数 
       // 计算之前初始化为0 
          s=0; 
       for(t=2;t<i;t++)
       {
           if(i%t==0)
              s++;       
       }
 // https://zhidao.baidu.com/question/170848286.html      
      if(s==0)  // 去掉此行后面的分号 
          printf("%d\n",i);
   }
   
}
 
 

img

#include"math.h"
#include"stdio.h"
void main()
{
    int n,m,i,flag=0;
    printf("\n输人整数n=");
    scanf("%d",&n);
    m=sqrt(n);
    for(i=2;i<=m;i++)
        if(n%i==0)
        {
            flag=1;
            break;
         }
    if(flag)
        printf("\n%d不是素数.\n",n);
    else
        printf("\n%d是素数.\n",n);
}

  • 关于该问题,我找了一篇非常好的博客,你可以看看是否有帮助,链接:(指针)输入10个整数, 把最小的与第一个数交换, 最大的与最后一个数交换
  • 以下回答由chatgpt基于相关博客总结生成:

    根据题目要求,我们需要编写一个C++程序来判断在指定范围内的素数。下面是一个可能的解决方案:

    #include <iostream>
    
    // 判断一个数是否为素数的函数
    bool isPrime(int num) {
        if (num == 1 || num == 0) {
            return false;
        }
    
        for (int i = 2; i <= num / 2; ++i) {
            if (num % i == 0) {
                return false;
            }
        }
    
        return true;
    }
    
    int main() {
        int start = 10;  // 起始范围
        int end = 20;    // 结束范围
    
        std::cout << "素数范围: " << start << " - " << end << std::endl;
    
        // 遍历范围内的每个数并判断是否为素数
        for (int i = start; i <= end; ++i) {
            if (isPrime(i)) {
                std::cout << i << " 是素数" << std::endl;
            }
        }
    
        return 0;
    }
    

    在以上解决方案中,我们首先定义了一个判断一个数是否为素数的函数 isPrime()。然后在 main() 函数中,我们定义了起始范围 start 和结束范围 end。接着,我们通过一个循环遍历每个数,并调用 isPrime() 函数来判断该数是否为素数。如果是素数,则输出该数。

    要将以上代码保存为一个C++源文件,例如 prime.cpp,然后使用C++编译器编译和运行该文件。