爱问知识人 爱问教育 医院库

C语言的问题

首页

C语言的问题

题目: 输入一个整数,判断是否是素数(只能被1和它本身整除的并且大于1的自然数)看看底下的编程对不对,错了要怎么改?
main()
{int x=1,n,i;
scanf("%d",&n);
if (n==2) printf("是素数");
else for (i=2;i<n;i++)
{if (n%i==0){x=0;break;}
else continue;}
if (x==0) printf("不是素数")
else printf("是素数");} 

提交回答
好评回答
  • 2006-06-13 11:01:44
      这个问题在另外一个区已经回答过了-____-b
    main()
    {
    int x = 1, n, i;
    int sqrtn = 0;
    scanf( "%d", &n );
    if ( n <= 0 )
    {
    printf( "%d不是素数\n", n );
    return;
    }
    if( n==2 )
    {
    printf( "%d是素数\n", n );
    return;
    }
    sqrtn = int(sqrt(n));
    for( i=2; i<=sqrtn; i++ )
    { 
    if( n%i == 0 )
    {
    x = 0;
    break;
    }
    }
    if( x == 0 )
    {
    printf( "%d不是素数\n", n);
    }
    else
    {
    printf( "%d是素数\n", n );
    }
    }
    1。
      引入sqrtn是为了避免每次都计算n的平方根浪费 2。引入对n<=0的判断是为避免后面计算平方根出错 。

    绯***

    2006-06-13 11:01:44

其他答案

    2006-06-12 22:51:14
  •   你的程序中少了一个";",并且有一个中文“;”
    以下是我改正后的样子
    main()
    {
    int x=1,n,i;
    	scanf("%d",&n);
    	if (n==2)
    		printf("是素数");
    	else
    		for (i=2;i  

    f***

    2006-06-12 22:51:14

  • 2006-06-12 22:32:52
  • 你这个程序应该是可以正常运行的,而且输出结果也应该是正确的。
    但是你的算法可以再改进,比如,你优先判断完2之后,可以先判断n是不是偶数,然后for(i=3;i
    		                
    		            

    棕***

    2006-06-12 22:32:52

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 176-195
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):