C语言 求解!

1.孪生素数如果n和n+2都是素数,则称他们是孪生素数,输入m,输出两个数均不超过m最大孪生素数。5<=m>=10000,例如m=20时的答案是17和19,m=1000时... 1.孪生素数
如果n和n+2都是素数,则称他们是孪生素数,输入m,输出两个数均不超过m最大孪生素数。5<=m>=10000,例如m=20时的答案是17和19,m=1000时的答案是881和883
样例输入:20
样例输出:17 19
注:不用函数!用嵌套循环!
2.开灯问题
有N盏灯,编号为1~N,第一个人把所有的灯都打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为三的倍数的开关(其中关掉的灯将被打开,开着的灯将会关闭),以此类推,一共有k个人,问最后有那些灯开着》
输入:n和k,输出开着的灯的编号,k<=n<=1000
样例输入:7 3
样例输出:1 5 6 7
注:不用函数!用嵌套循环!
如果回答的好会追加!
第一题不用函数!用嵌套循环!
输错了一个!5<=m<=10000
急啊~~~!!!!!
展开
 我来答
lingdang1987
推荐于2017-12-15 · 超过25用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:66.9万
展开全部
#include "stdio.h"

1.void main()
{
int inputData;
int i, j, flag1, flag2;

printf("input data[5, 10000]:");
scanf("%d", &inputData);

if((inputData<5) || (inputData>10000))
{
printf("error input");
return;
}

for(i=inputData; i>=5; i--)
{
flag1 = 1;
for(j=2; j<=i/2; j++) //判断第一个数为素数
{
if (i%j==0)
{
flag1 = 0;
break;
}

}
if (flag1) //判断第二个数素数
{
flag2 = 1;
for(j=2; j<=(i-2)/2; j++)
{
if((i-2)%j==0)
{
flag2 = 0;
break;

}

}

if (flag2)
{
printf("%d, %d", i-2, i);
break;
}
}
}

}

2.void main()
{
int N, K;
int i, j;

int light[1000];
printf("请输入灯数:");
scanf("%d", &N);

printf("请输入人数:");
scanf("%d", &K);

for (j=0; j<N; j++);
{
light[j] = 0;
}

for(i=1; i<=K; i++)
{
for (j=0; j<N; j++)
{
if ((j+1)%i == 0)
{
light[j] = (light[j]+1)%2;
}
}
}

for (j=0; j<N; j++)
{
if (light[j])
{
printf("%d\t", j+1);
}
}

}

以上程序可以直接运行,有一些限制条件可以适当的加进去。

希望对你有所帮助
一变班爱麻啊堡0J
高粉答主

2020-01-13 · 醉心答题,欢迎关注
知道答主
回答量:11.4万
采纳率:2%
帮助的人:5550万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式