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;
} 展开
#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;
} 展开
4个回答
2015-09-16 · 知道合伙人软件行家
关注
展开全部
素数是指在一个大于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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
希望回答对你有帮助
{
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;
}
希望回答对你有帮助
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该改为
#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;
}
}
#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;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询