编程论坛
注册
登录
编程论坛
→
C语言论坛
输出200以内最后n个素数
yym33
发布于 2020-04-28 18:25, 2002 次点击
2是第一个素数,3是第二个素数,5是第三个素数,以此类推
输出200以内最后n个素数,n由键盘输入,素数输出时用逗号间隔
8 回复
#2
yym33
2020-04-28 19:07
呜呜,有没有大佬会做呀~
#3
lin5161678
2020-04-28 19:24
明显是一个筛法练习
#4
yym33
2020-04-28 19:25
回复 3楼 lin5161678
怎么说呢?
#5
纯蓝之刃
2020-04-28 19:45
程序代码:
#include
<stdio.h>
int
main()
{
int
i,j,n;
scanf(
"
%d
"
,&n);
for
(j=
200
; j>
1
&&n>
0
; j--)
{
for
(i=
2
; i<j; i++)
{
if
(j%i==
0
)
break
;
}
if
(i==j)
{
n--;
printf(
"
%d,
"
,j);
}
}
return
0
;
}
#6
吕孟伟
2020-04-28 19:59
回复 5楼 纯蓝之刃
哥,有什么办法能不输出最后的一个逗号呢?
#7
深秋2015
2020-04-28 20:06
回复 6楼 吕孟伟
加个判断解君愁
程序代码:
#include
<stdio.h>
int
main()
{
int
i,j,n;
scanf(
"
%d
"
,&n);
for
(j=
200
; j>
1
&&n>
0
; j--)
{
for
(i=
2
; i<j; i++)
{
if
(j%i==
0
)
break
;
}
if
(i==j)
{
n--;
if
(n==
0
){
//
判断是不是最后一个
printf(
"
%d
"
,j);
}
else
{
printf(
"
%d,
"
,j);
}
}
}
return
0
;
}
#8
纯蓝之刃
2020-04-28 20:06
程序代码:
#include
<stdio.h>
int
main()
{
int
i,j,n;
scanf(
"
%d
"
,&n);
for
(j=
200
; j>
1
; j--)
{
for
(i=
2
; i<j; i++)
{
if
(j%i==
0
)
break
;
}
if
(i==j)
{
n--;
if
(n==
0
)
{
printf(
"
%d
"
,j);
break
;
}
else
printf(
"
%d,
"
,j);
}
}
return
0
;
}
#9
吕孟伟
2020-04-28 21:26
回复 7楼 深秋2015
好的,学到了。
1