寻找下一个立即素数的程序 void main() { int n,i,j,flag=0,out; clrsc(); printf(“输入数值”); scanf(“%d”和“&n”); 对于(i=n+1;i

寻找下一个立即素数的程序 void main() { int n,i,j,flag=0,out; clrsc(); printf(“输入数值”); scanf(“%d”和“&n”); 对于(i=n+1;i,c,C,检查以下代码: void main() { int n,i,j,flag=0,out; clrscr(); printf("enter the num\n"); scanf("%d",&n); for(i=n+1;i<=100;i++) { flag=0; for(j=2;j<i;j++) { if(i%j==0) { fla

检查以下代码:

void main()    
{
   int n,i,j,flag=0,out;

   clrscr();

   printf("enter the num\n");

   scanf("%d",&n);

   for(i=n+1;i<=100;i++)
   {

      flag=0;

      for(j=2;j<i;j++)
      {
         if(i%j==0)
         {
            flag=1;
            break;
         }
      }

      if(flag==0)
      {
         printf("next prime is:%d",i);
         break;
      }
   }

   getch();

}
void main()
{
int n,i,j;
clrsc();
printf(“输入数字:”);
scanf(“%d”和“&n”);
对于(i=n+1;;i++)
{

对于(j=2;j我检查了您的程序,它生成了正确的输出

现在来解释一下,关于你描述的案例

在这段代码中,如果我输入的输入是8,那么i=9,j=2,然后9%2==0 条件变为false,9将被打印为下一个素数 这是错误的答案


因此,它将得到(9%2==0)=>false。然后它不会检查
if(flag==0)
条件并将9打印为下一个素数。相反,它将增加j并继续循环,直到
jheh?我不明白。@cad
Then 9%2==0条件变为false
。所以你们都是正确的:)你们是否错过了
if(flag==0)
check?我无法理解这个概念背后的含义。有人解释这个PLS,外环应该忽略偶数,因为没有偶数(2除外)因此,在外循环的顶部,如果n是偶数,则将i初始化为n+1,如果n是奇数,则将n+2初始化为n+2。如下所示:i=n%2?n+2:n+1;然后通过迭代2跳过偶数,如下所示:for(i=n%2?n+2:n+1;;i+=2)这将产生相同的结果,但只需一半的时间。
void main()
{
    int n,i,j;
    clrscr();

    printf("Enter the number : ");
    scanf("%d",&n);

    for(i=n+1;;i++)
    {
        for(j=2;j<i;j++)
        {
            if(i%j==0)
                break;
        }

        if(j==i)
        {
            printf("The next prime number is :%d",i);
            break;
        }
    }
    getch();
}