在计蒜客学习时被一道练习题卡住了,做不出来就不能学习后面的内容,大家帮帮我,贡献下C语言代码吧
答案:2 悬赏:50 手机版
解决时间 2021-04-01 03:45
- 提问者网友:鼻尖触碰
- 2021-03-31 20:20
在计蒜客学习时被一道练习题卡住了,做不出来就不能学习后面的内容,大家帮帮我,贡献下C语言代码吧
最佳答案
- 五星知识达人网友:撞了怀
- 2021-03-31 21:02
#include
#include
#include
typedef char BOOL;
#define TRUE 1
#define FALSE 0
void prime(BOOL * array, int n)
{
int i, j, sqrMax;
for(i = 2; i < n; i++)
{
if(i == 2 || i == 3) {array[i] = TRUE; continue;}
if(i<16) sqrMax = i - 1;
else sqrMax = (int)(sqrt(i)); // 浮点数运算比较耗时
array[i] = TRUE;
for(j = 2; j <= sqrMax; j++) if(i % j == 0) {array[i] = FALSE; break;}
}
}
int main()
{
BOOL * array;
int i, n;
scanf("%d", &n);
array = (BOOL *)malloc(n * sizeof(BOOL));
prime(array, n);
for(i = 2; i < n; i++) if(array[i]) printf("%d ", i);
printf("
");
free(array);
return 0;
}追问哇,貌似可以啊。兄贵,谢谢,我先提交一下,看能不能通过。通过了好评就给你,过不了嘛...也会给你的追答过去了没有呀追问测试过了,但是提交失败。提示网络错误,无法提交,可能是网站问题吧,总之谢谢了!我以为这个问题会沉呢在?提交后显示代码是对的,但是输出格式有问题
这要怎么办呢
#include
#include
typedef char BOOL;
#define TRUE 1
#define FALSE 0
void prime(BOOL * array, int n)
{
int i, j, sqrMax;
for(i = 2; i < n; i++)
{
if(i == 2 || i == 3) {array[i] = TRUE; continue;}
if(i<16) sqrMax = i - 1;
else sqrMax = (int)(sqrt(i)); // 浮点数运算比较耗时
array[i] = TRUE;
for(j = 2; j <= sqrMax; j++) if(i % j == 0) {array[i] = FALSE; break;}
}
}
int main()
{
BOOL * array;
int i, n;
scanf("%d", &n);
array = (BOOL *)malloc(n * sizeof(BOOL));
prime(array, n);
for(i = 2; i < n; i++) if(array[i]) printf("%d ", i);
printf("
");
free(array);
return 0;
}追问哇,貌似可以啊。兄贵,谢谢,我先提交一下,看能不能通过。通过了好评就给你,过不了嘛...也会给你的追答过去了没有呀追问测试过了,但是提交失败。提示网络错误,无法提交,可能是网站问题吧,总之谢谢了!我以为这个问题会沉呢在?提交后显示代码是对的,但是输出格式有问题
这要怎么办呢
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯