目录
第三节 逻辑挑战7:判断质数很简单
判断5是否为质数:
判断5是否为质数(反向思维):
判断5是否为质数(改善方法):
判断任意一个数是不是质数:
输出一个数的所有约数,如果没有约数就是质数:
第4节 更快一点:break
判断一个正整数是否为质数:
用break语句输出1 2 3 4 5:
第5节 continue
用continue语句打印1~100的偶数:
第6节 逻辑挑战8:验证哥德巴赫猜想
判断一个数是否为质数:
在4~100内验证哥德巴赫猜想并输出每个偶数的所有可能的拆分方法:
第7节 逻辑挑战9:水仙花数
用三重嵌套循环来产生100~999:
在100~999中判断哪个数字是“水仙花数”(拼接法):
在100~999中判断哪个数字是“水仙花数”(分割法):
输入一个3位数,求这个数个位、十位和百位的数之和:
输入范围在1~99999999的n位数,求这个n位数每一位上的数之和:
第8节 逻辑挑战10:解决奥数难题
请在两个□内填入相同的数字使得等式成立:□3 * 6528 = 3□ * 8256
请问A、B、C、D、E(5个互不相同的整数)分别为多少时,ABCD*E=DCBA:
用1~6自然数组成一个三角形并让这个三角形三条边上数字之和相等:
第9节 逻辑挑战11:猜数游戏
限定6次猜0~99的整数:
生成一个1~20000000的随机数:
第10节 逻辑挑战12:你好坏,关机啦
启动关机程序与6次猜数问题结合:
第三节 逻辑挑战7:判断质数很简单
#include
#include
int main()
{
int a;
a = 5;
if (a % 2 != 0 && a % 3 != 0 && a % 4 != 0)
{
printf("质数\n");
}
else
{
printf("合数\n");
}
system("pause");
return 0;
}
调试结果:
#include
#include
int main()
{
int a;
a = 5;
if (a % 2 == 0 || a % 3 == 0 || a % 4 == 0)
{
printf("合数\n");
}
else
{
printf("质数\n");
}
system("pause");
return 0;
}
调试结果:
#include
#include
int main()
{
int a, count, i;
count = 0;
a = 5;
for (i = 2; i <= 4; i++)
{
if (a % i == 0)
count++;
}
if (count == 0)
{
printf("质数\n");
}
else
{
printf("合数\n");
}
system("pause");
return 0;
}
调试结果:
#include
#include
int main()
{
int a, count, i;
count = 0;
scanf("%d", &a);
for (i = 2; i <= a - 1; i++)
{
if (a % i == 0)
count++;
}
if (count == 0)
{
printf("质数\n");
}
else
{
printf("合数\n");
}
system("pause");
return 0;
}
调试结果:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main()
{
int a, count, i;
count = 0;
scanf("%d", &a);
for (i = 2; i <= a - 1; i++)
{
if (a % i == 0)
{
count++;
printf("%d ", i); //打印出约数
}
}
if (count == 0)
{
printf("\n质数\n");
}
else
{
printf("\n合数\n");
}
system("pause");
return 0;
}
调试结果:
第4节 更快一点:break
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main()
{
int a, count, i;
count = 0;
scanf("%d", &a);
for (i = 2; i <= a - 1; i++)
{
if (a % i == 0)
{
count++;
break;
}
}
if (count == 0)
{
printf("质数\n");
}
else
{
printf("合数\n");
}
system("pause");
return 0;
}
调试结果:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main()
{
int a, count, i;
count = 0;
scanf("%d", &a);
for (i = 2; i <= a - 1; i++)
{
if (a % i == 0)
{
count++;
printf("%d ", i); //打印出约数
}
}
if (count == 0)
{
printf("质数\n");
}
else
{
printf("合数\n");
}
system("pause");
return 0;
}
调试结果:
第5节 continue
#include
#include
int main()
{
int i;
for (i = 1; i <= 100; i++)
{
if (i % 2 == 1)
{
continue;
}
printf("%d ", i);
}
printf("\n");
system("pause");
return 0;
}
调试结果:
第6节 逻辑挑战8:验证哥德巴赫猜想
#include
#include
int main()
{
int k, a, b, i, count1, count2;
for (k = 4; k <= 100; k = k + 2)
{
for (a = 2; a <= k / 2; a++)
{
//判断a是否为质数
count1 = 0;
for (i = 2; i <= a - 1; i++)
{
if (a % i == 0)
{
count1++;
break;
}
}
if (count1 == 0) //如果a为质数
{
b = k - a;
//判断b是否为质数
count2 = 0;
for (i = 2; i <= b - 1; i++)
{
if (b % i == 0)
{
count2++;
break;
}
}
if (count2 == 0) //如果b也是质数
{
printf("%d = %d + %d\n", k, a, b);
break; //打印这个解并跳出循环
}
}
}
}
system("pause");
return 0;
}
调试结果:
#include
#include
int main()
{
int a, b, k, i, count1, count2;
for (k = 4; k <= 100; k = k + 2)
{
printf("%d", k);
for (a = 2; a <= k / 2; a++)
{
count1 = 0;
for (i = 2; i <= a - 1; i++)
{
if (a % i == 0)
count1++;
}
if (count1 == 0)
{
b = k - a;
count2 = 0;
for (i = 2; i <= b - 1; i++)
{
if (b % i == 0)
count2++;
}
if (count2 == 0)
printf(" = %d + %d ", a, b);
}
}
printf("\n");
}
system("pause");
return 0;
}
调试结果:
第7节 逻辑挑战9:水仙花数
#include
#include
int main()
{
int i, j, k;
for (i = 1; i <= 9; i++)
{
for (j = 0; j <= 9; j++)
{
for (k = 0; k <= 9; k++)
{
printf("%d ", i * 100 + j * 10 + k);
}
}
}
printf("\n");
system("pause");
return 0;
}
调试结果:
#include
#include
int main()
{
int i, j, k;
for (i = 1; i <= 9; i++)
{
for (j = 0; j <= 9; j++)
{
for (k = 0; k <= 9; k++)
{
if (i * 100 + j * 10 + k == i * i * i + j * j * j + k * k * k)
{
printf("%d ", i * 100 + j * 10 + k);
}
}
}
}
printf("\n");
system("pause");
return 0;
}
调试结果:
#include
#include
int main()
{
int x, a, b, c;
for (x = 100; x <= 999; x++)
{
a = x / 100;
b = x / 10 % 10;
c = x % 10;
if (x == a * a * a + b * b * b + c * c * c)
printf("%d ", x);
}
printf("\n");
system("pause");
return 0;
}
调试结果:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main()
{
int x, a, b, c, d;
scanf("%d", &x);
a = x / 100;
b = x / 10 % 10;
c = x % 10;
d = a + b + c;
printf("%d \n", d);
system("pause");
return 0;
}
调试结果:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
int main()//主函数
{
int x, y = 0; //定义两个数,x代表这个输入的n位数,y代表n各个位上数之和
scanf("%d", &x); //输入一个数,将其存放到x
while (x > 0) //使用while循环函数只要x>0循环一直进行
{
y += x % 10; //y只要一直加x的余数,就是各个位数上的数字
x = x / 10; //由于x等号两边的数为整数则结果为整数,让x的位数递减直至x=0循环结束
}
printf("%d\n", y);
system("pause");
return 0;
}
调试结果:
第8节 逻辑挑战10:解决奥数难题
#include
#include
int main()
{
int i;
for (i = 1; i <= 9; i++)
{
if ((i * 10 + 3) * 6528 == (30 + i) * 8256)
printf("%d\n", i);
}
system("pause");
return 0;
}
调试结果:
#include
#include
int main()
{
int a, b, c, d, e;
for (a = 0; a <= 9; a++)
{
for (b = 0; b <= 9; b++)
{
for (c = 0; c <= 9; c++)
{
for (d = 0; d <= 9; d++)
{
for (e = 0; e <= 9; e++)
{
if (a != b && a != c && a != d && a != e && b != c && b != d && b != e && c != d && c != e && d != e)
{
if ((a * 1000 + b * 100 + c * 10 + d) * e == (d * 1000 + c * 100 + b * 10 + a))
{
printf("%d%d%d%d\n", a, b, c, d);
printf("* %d\n", e);
printf("----\n");
printf("%d%d%d%d\n", d, c, b, a);
}
}
}
}
}
}
}
system("pause");
return 0;
}
调试结果:
#include
#include
int main()
{
int a, b, c, d, e, f, sum = 0;
for (a = 1; a <= 6; a++)
{
for (b = 1; b <= 6; b++)
{
for (c = 1; c <= 6; c++)
{
for (d = 1; d <= 6; d++)
{
for (e = 1; e <= 6; e++)
{
for (f = 1; f <= 6; f++)
{
if (a + b + c == c + d + e)
{
if (c + d + e == e + f + a)
{
if (a + b + c == a + f + e)
{
if (a != b && a != c && a != d && a != e && a != f
&& b != c && b != d && b != e && b != f
&& c != d && c != e && c != f
&& d != e && d != f
&& e != f)
{
sum++;
printf("\n\n");
printf(" %d\n\n", a);
printf(" %d %d\n\n", b, f);
printf("%d %d %d\n\n", c, d, e);
printf("--------------------------\n");
}
}
}
}
}
}
}
}
}
}
printf("\nsum = %d \n", sum);
system("pause");
return 0;
}
调试结果:
1
4 6
5 2 3
--------------------------
1
5 6
3 4 2
--------------------------
1
6 5
2 4 3
--------------------------
1
6 4
3 2 5
--------------------------
2
3 5
6 1 4
--------------------------
2
4 6
3 5 1
--------------------------
2
5 3
4 1 6
--------------------------
2
6 4
1 5 3
--------------------------
3
2 6
5 4 1
--------------------------
3
4 5
2 6 1
--------------------------
3
5 4
1 6 2
--------------------------
3
6 2
1 4 5
--------------------------
4
1 5
6 3 2
--------------------------
4
2 3
6 1 5
--------------------------
4
3 2
5 1 6
--------------------------
4
5 1
2 3 6
--------------------------
5
1 3
6 2 4
--------------------------
5
2 4
3 6 1
--------------------------
5
3 1
4 2 6
--------------------------
5
4 2
1 6 3
--------------------------
6
1 3
4 5 2
--------------------------
6
1 2
5 3 4
--------------------------
6
2 1
4 3 5
--------------------------
6
3 1
2 5 4
--------------------------
sum = 24
请按任意键继续. . .
第9节 逻辑挑战11:猜数游戏
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
int main()
{
int a, b, sum;
sum = 6;
srand((unsigned)time(NULL));
a = rand() % 100;
while (1)
{
sum--;
scanf("%d", &b);
if (b > a)
printf("大了,还剩下%d次机会,请继续\n", sum);
if (b < a)
printf("小了,还剩下%d次机会,请继续\n", sum);
if (b == a)
{
printf("恭喜你,答对了!\n");
break;
}
if (sum == 0)
{
printf("已经没有机会了,请重新开始吧!\n");
break;
}
}
system("pause");
return 0;
}
调试结果:
#include
#include
#include
int main()
{
int a, b, n, i = 1;
srand((int)time(NULL));
while (i > 0)
{
int a = rand() % 4000 + 1;
int b = rand() % 5000 + 1;
int n = a * b;
printf("%d\n", n);
i--;
}
system("pause");
return 0;
}
调试结果:
第10节 逻辑挑战12:你好坏,关机啦
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
int main()
{
int a, b, sum;
sum = 6;
srand((unsigned)time(NULL));
a = rand() % 100;
while (1)
{
sum--;
scanf("%d", &b);
if (b > a)
printf("大了,还剩下%d次机会,请继续\n", sum);
if (b < a)
printf("小了,还剩下%d次机会,请继续\n", sum);
if (b == a)
{
printf("恭喜你,答对了!\n");
break;
}
if (sum == 0)
{
printf("没有机会了,系统将在50秒后关机\n");
system("shutdown -s -t 50");
break;
}
}
system("pause");
return 0;
}
调试结果: