C语言问题!找出100以内的全部素数

帮我看看我的程序错在哪了,我运行后输出的是所以的数#include<stdio.h>intmain(){inti=2,a=1,r,w=0;while(a<=100){wh... 帮我看看我的程序错在哪了,我运行后输出的是所以的数
#include<stdio.h>
int main()
{
int i=2,a=1,r,w=0;
while(a<=100)
{
while (i<a&&w==0)
{
r=a%i;
if(r=0)
w=1;
else w=0;
i=i+1;
}
if (w=1)
printf("%d\n",a);
a=a+1;
}
return 0;
}
展开
 我来答
lgao622
2015-09-16 · 知道合伙人软件行家
lgao622
知道合伙人软件行家
采纳数:1137 获赞数:6550
毕业于武汉工程大学邮电与信息工程学院通信专业,软件行业,4年工作经验。

向TA提问 私信TA
展开全部
#include <stdio.h>

int IsPrime(int n)
{
    if (n <= 1) return 0;
    if (n % 2 == 0) return n == 2;

    for (int i = 3; ; i += 2)
    {
        if (i > n/i) break;  // 等价于 i*i > n, 不用开方
        if (n % i == 0) return 0;
    }
    return 1;
}

int main()
{
    for (int n = 0; n < 100; n++)
        if (IsPrime(n))
            printf("%d ", n);
    return 0;
}

百度网友ec60c7c
推荐于2017-09-30 · 知道合伙人数码行家
百度网友ec60c7c
知道合伙人数码行家
采纳数:21 获赞数:1309
井冈山大学在校生

向TA提问 私信TA
展开全部
  素数是指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。要判断这个数是不是素数,需要将比它小的数(除1外)整除它,如果能就说明这不是素数
  #include<stdio.h>
  int i=2,,a=1,r,w=0;
  while(a<=100)
  {
  i=2;/* 每要执行一次内嵌循环就应该重置 i 的值 */

  while (i<a&&w==0)
  {
  r=a%i;
  if(r==0) /*r为0,就说明i能整除a,则a就不是素数*/
  {
  w=1;/* 只要有一个数能被整除,那它就不是素数,那就该退出循环 */
break;
  }
  i=i+1;/*i继续加1,重复之前的操作*/
  }
  if (w==0&&a>1)/*因为1不是素数,则要排除它*/

  printf("%d\n",a);/* 输出素数 */

  a=a+1;
  }
  return 0;
  }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
worldxa
推荐于2017-09-27 · TA获得超过1720个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:723万
展开全部
int main()
{
int i=2,a=1,r,w=0;
while(a<=100)
{
i=2; /* 每要执行一次内嵌循环就应该重置 i 的值 */
while (i<a&&w==0)
{
r=a%i;
if(r=0) /* 应该用双等号,表示判断r是否等于0或者直接写成r就行 */
{
w=1; /* 只要有一个数能被整除,那它就不是素数,那就该退出循环 */
break;
}
/*else 这个多余的
w=0;*/
i=i+1;
}
if (w=1) /* 同样应该用双等号,且应该写成w==0&&a>1,因为1不是素数 */
printf("%d\n",a); /* 输出素数 */
a=a+1;
}
return 0;
}

希望回答对你有帮助
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江南雨_林
2011-10-16
知道答主
回答量:11
采纳率:0%
帮助的人:14.6万
展开全部
应该改为

#include "stdafx.h"
#include<stdio.h>
void main()
{
int i,a=1,r,w=0;
while(a<=100)
{
i=2;
while (i<a&&w==0)
{
r=a%i;
if(r==0)
{
w=1;
break;
}
else
w=0;
i=i+1;
}
if (w==0)
{
printf("%d\n",a);
}
else
w=0;
a=a+1;
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式