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
急啊~~~!!!!! 展开
如果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
急啊~~~!!!!! 展开
2个回答
展开全部
#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);
}
}
}
以上程序可以直接运行,有一些限制条件可以适当的加进去。
希望对你有所帮助
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);
}
}
}
以上程序可以直接运行,有一些限制条件可以适当的加进去。
希望对你有所帮助
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询