一道c语言题,求高手解释下这题!
#include"stdio.h"main(){intj,i,k=0;for(j=50;j<=60;j++){if(!(k%10))printf("\n");for(i=...
#include "stdio.h"
main()
{int j,i,k=0;
for(j=50;j<=60;j++)
{if(!(k%10))printf("\n");
for(i=2;i<j;i++)if(!(j%i))break;
if(i>=j-1){printf("%d",j);
k++;}}}
答案是:5359 我不知道这个怎么来的 请高手解释下过程谢谢 展开
main()
{int j,i,k=0;
for(j=50;j<=60;j++)
{if(!(k%10))printf("\n");
for(i=2;i<j;i++)if(!(j%i))break;
if(i>=j-1){printf("%d",j);
k++;}}}
答案是:5359 我不知道这个怎么来的 请高手解释下过程谢谢 展开
5个回答
展开全部
我把行分好点,直观点
总的目的就是找出50~60中的质数(素数)
#include "stdio.h"
main()
{
int j,i,k=0;
for(j=50;j<=60;j++) //从50~60
{
if(!(k%10)) printf("\n"); //k用来换行,但是前面k=0应该改为k=1
for(i=2;i<j;i++) //判断素数常用,从2~本身不断除j,但其实除到根号j即可
if(!(j%i)) break; //假如j可以被i整除,结束上一行for循环
if(i>=j-1) //与上两行for无关,若i=j-1,如j=54,i=53,说明从2~i(53)都不能整
// 除j,j为素数
{printf("%d ",j);k++;} //输出j ,k++用来控制转行
}
}
如还有其他不明,可继续提问。
总的目的就是找出50~60中的质数(素数)
#include "stdio.h"
main()
{
int j,i,k=0;
for(j=50;j<=60;j++) //从50~60
{
if(!(k%10)) printf("\n"); //k用来换行,但是前面k=0应该改为k=1
for(i=2;i<j;i++) //判断素数常用,从2~本身不断除j,但其实除到根号j即可
if(!(j%i)) break; //假如j可以被i整除,结束上一行for循环
if(i>=j-1) //与上两行for无关,若i=j-1,如j=54,i=53,说明从2~i(53)都不能整
// 除j,j为素数
{printf("%d ",j);k++;} //输出j ,k++用来控制转行
}
}
如还有其他不明,可继续提问。
追问
我知道 原来是我这本题目答案5359硬连在一起了 是53 和 59 这是题选择题 我头一次做素数的题目
谢了 你这样写我看的比较清楚
展开全部
#include "stdio.h"
main()
{
int j , i , k = 0;
for( j = 50 ; j <= 60 ; j++)
{
if( !( k % 10 ) )
printf( "000\n" );
for( i = 2 ; i < j ; i++ )
if( !( j % i ) )
break;
if( i >= j-1 )
{
printf( "%d" , j );
k++;
}
}
}
根据%求模运算,初始条件j = 50 , k = 0 , k % 10 = 0 所以 !( k % 10 ) 为真 ,执行printf( "000\n" ); for( i = 2 ; i < j ; i++ ) i = 2 , j = 50 , j % i = 0 , !( j % i ) 为真,执行break; 下面的不再执行,把j +1 ,j = 51 ,再继续从头开始执行 ,自己想一下吧。如果还不明白的,加QQ:1787722171 ,以后代码格式写清晰一点。
main()
{
int j , i , k = 0;
for( j = 50 ; j <= 60 ; j++)
{
if( !( k % 10 ) )
printf( "000\n" );
for( i = 2 ; i < j ; i++ )
if( !( j % i ) )
break;
if( i >= j-1 )
{
printf( "%d" , j );
k++;
}
}
}
根据%求模运算,初始条件j = 50 , k = 0 , k % 10 = 0 所以 !( k % 10 ) 为真 ,执行printf( "000\n" ); for( i = 2 ; i < j ; i++ ) i = 2 , j = 50 , j % i = 0 , !( j % i ) 为真,执行break; 下面的不再执行,把j +1 ,j = 51 ,再继续从头开始执行 ,自己想一下吧。如果还不明白的,加QQ:1787722171 ,以后代码格式写清晰一点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
找素数的程序 ,只是其中的好几句语句没有用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用VS跟踪i,j,k这几个变量就知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我的妈呀!土星文吧?不懂!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |