寻找下一个立即素数的程序 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?我不明白。@cadThen 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();
}