做网站优化企业,黄骅贴吧最新招聘信息,三合一网站系统,宁波江北区城市建设档案馆网站算法竞赛入门【码蹄集新手村600题】(MT1260-1280#xff09;C语言 目录MT1260 袋鼠躲猫猫MT1261 留下来的才是幸运数MT1262 约数MT1263 最大的三位约数MT1264 完数MT1265 区间完数MT1266 完数与因子MT1267 亏数MT1268 因数的因数MT1269 区间素数MT1270 素数计算MT1271 三生质数… 算法竞赛入门【码蹄集新手村600题】(MT1260-1280C语言 目录MT1260 袋鼠躲猫猫MT1261 留下来的才是幸运数MT1262 约数MT1263 最大的三位约数MT1264 完数MT1265 区间完数MT1266 完数与因子MT1267 亏数MT1268 因数的因数MT1269 区间素数MT1270 素数计算MT1271 三生质数MT1272 双素数MT1273 N以内双素数MT1274 都相差6MT1275 都相差10MT1276 偶数NMT1277 合数世纪MT1278 自然数N的立方MT1279 危险的粒子MT1280 后2位数 码蹄集网站地址https://www.matiji.net/exam/ojquestionlist 目录
MT1260 袋鼠躲猫猫
1题目 两只袋鼠在一个总长L米的圆环上躲猫猫。假定环上某一点为坐标原点0袋鼠宝宝的出发坐标是x袋鼠妈妈出发坐标是y单位是米宝宝一小时能跳a次妈妈一小时跳b次假定他们每一跳的距离都是1米求多少小时后宝宝和妈妈才能见面。如果无法见面则输出-1。xyabL都属于正常int范围。“见面”以每小时结束时刻两只袋鼠的落点相同为准。 格式
输入格式
输入5个正整数xyabL空格分隔。其中x不等于y。输出格式
输出整型样例1
输入
1 2 3 4 5输出
42参考代码
#includestdio.h
int main()
{int x, y, a, b, l, time 1;scanf(%d %d %d %d %d, x, y, a, b, l);if (a b){printf(-1);return 0;}while ((x a) % l ! (y b) % l){x (x a) % l;y (y b) % l;time;}printf(%d, time);return 0;
}MT1261 留下来的才是幸运数
1题目 首先删除所有序号能被2整除的项的数我们就得135,79,1113,15,17,19…现在删除所有序号能被3整除的项我们得到13,7913,15,19…….无限期地继续这个过程…而未被删除的号码称为“幸运数”。输入正整数N判断他是不是幸运数输出YES或者NO。不考虑不合理的输入等特殊情况。 格式
输入格式:
输入正整数N输出格式:
输出YES或者NO样例1
输入格式:
19输出格式:
YES2参考代码
#includestdio.h
int main()
{ int N, del 2;scanf(%d, N);while (N del){if (N % del 0){printf(NO);return 0;}N N - N / del;del;}printf(YES);return 0;
}MT1262 约数
1题目 计算555555约数中最大的三位数的约数。 格式
输入格式
无输出格式
输出整型样例1
输入
无 输出
7772参考代码
#includestdio.h
int main()
{ int n 555555;for (int i999;i100;i--){if (n % i 0){printf(%d\n, i);return 0;}}return 0;
}MT1263 最大的三位约数
1题目 键盘任意输入一个数n1000n1000000编程计算并输出n的所有约数中最大的三位约数。 格式
输入格式
输入整型输出格式
输出整型样例1
输入
555555输出
777
2参考代码
#includestdio.h
int main()
{ int n;scanf(%d, n);for (int i999;i100;i--){if (n % i 0){printf(%d\n, i);return 0;}}return 0;
}MT1264 完数
1题目 如果一个整数等于其所有真因子即除了自身以外的约数的和则该数字称为完数。例如6123编写一个程序来查找1到1000之间的所有完数。不考虑0负数或者其他特殊情况。 格式
输入格式
无输出格式
输出为整型空格分隔样例1
输入
无输出
6 28 4962参考代码
#includestdio.h
int main()
{ int sum 0;for (int i1;i1000;i){for (int j1;ji;j){if (i % j 0){sum j;}}if (sum i){printf(%d , i);}sum 0;}return 0;
}MT1265 区间完数
1题目 如果一个整数等于其所有真因子之和则该数字称为完数。例如6123输入整数区间输出区间含边界内所有的完数。不考虑0负数或者其他特殊情况。 格式
输入格式
输入为整型空格分隔输出格式
输出为整型空格分隔样例1
输入
1 500输出
6 28 4962参考代码
#includestdio.h
int main()
{ int a, b, sum 0;scanf(%d %d, a, b);for (int ia;ib;i){for (int j1;ji;j){if (i % j 0){sum j;}}if (sum i){printf(%d , i);}sum 0;}return 0;
}MT1266 完数与因子
1题目 如果一个整数等于其所有真因子之和则该数字称为完数。例如6123按指定格式输出1到1000之间的所有完数他们的真因子。不考虑0负数或者其他特殊情况。 格式
输入格式
无输出格式
分行输出样例1
输入
无输出
6123
28124714
49612481631621242482参考代码
#includestdio.h
int main()
{int sum 0;for (int i 1; i 1000; i){for (int j 1; j i; j){if (i % j 0){sum j;}}if (sum i){printf(%d, i);for (int j 1; j i; j){if (i % j 0){if (i / j 2){printf(%d, j);}else{printf(%d, j);}}}printf(\n);}sum 0;}return 0;
}MT1267 亏数
1题目 输入正整数N如果N的所有因子之和小于两倍的N该数字则称为亏数。判断N是否为亏数输出YES或者NO。 格式
输入格式
输入正整数N输出格式
输出YES或者NO样例1
输入
12输出
NO2参考代码
#includestdio.h
int main()
{ int N, sum 0;scanf(%d, N);for (int i1;iN;i){if (N % i 0){sum i;}}if (sum 2 * N){printf(YES);}else{printf(NO);}return 0;
}MT1268 因数的因数
1题目 输入正整数N任务是求N的所有因数的因数之和。54的因数12369182754。
其中1的所有因数之和是12的所有因数之和是123依次类推所有因数的因数之和分别为1,3,4,12,13,39,40,120。那么54的所有因数的因数之和 1 3 4 12 13 39 40 120 232 格式
输入格式
输入正整数N输出格式
输出整型样例1
输入
10输出
282参考代码
#includestdio.h
int main()
{ int N, sum 0;scanf(%d, N);for (int i1;iN;i){if (N % i 0){for (int j1;ji;j){if (i % j 0){sum j;}}}}printf(%d\n, sum);return 0;
}MT1269 区间素数
1题目 输入整数区间输出区间含边界内所有的素数。如果没有则输出空。不考虑0负数或者其他特殊情况。 格式
输入格式
输入为整型空格分隔输出格式
输出为整型空格分隔样例1
输入
100 130输出
101 103 107 109 113 1272参考代码
#includestdio.h
int main()
{ int a, b, flag 1;scanf(%d %d, a, b);for (int ia;ib;i){if (i ! 1){for (int j2;ji;j){if (i % j 0){flag 0;}}if (flag 1){printf(%d , i);}flag 1;}}return 0;
}MT1270 素数计算
1题目 编写一个程序来计算m到n之间的素数含边界。然后计算总和第一个素数-第二个素数第三个素数-第四个素数第五个素数…这些素数按降序排列。 格式
输入格式
输入为整型空格分隔输出格式
输出为整型样例1
输入
500 800输出
1302参考代码
#includestdio.h
int main()
{ int a, b, flag 1, sum 0, num -1;scanf(%d %d, a, b);for (int ib;ia;i--){if (i ! 1){for (int j2;ji;j){if (i % j 0){flag 0;}}if (flag 1){num -num;sum sum i * num;}flag 1;}}printf(%d\n, sum);return 0;
}MT1271 三生质数
1题目 若三个连续的质数相邻两个都相差2的叫三生质数。输入正整数N输出N以内(含N)的三生质数。没有就输出0。 格式
输入格式:
输入整型输出格式:
输出整型空格分隔每行一组。样例1
输入格式:
100输出格式:
3 5 72参考代码
#includestdio.h
#define MAX_NUM 500
int main()
{ int N, num 0, flag 0;scanf(%d, N);int Check[MAX_NUM] {1, 1}, primes[MAX_NUM] {0};for (int i2;iMAX_NUM;i){if (Check[i] 0){for (int j2;j * i MAX_NUM;j){Check[i * j] 1;}primes[num] i;}}for (int i0;inum-2;i){if (primes[i] primes[i1]-2 primes[i1] primes[i2]-2){flag 1;printf(%d %d %d, primes[i], primes[i1], primes[i2]);}}if (flag 0){printf(0);}return 0;
}MT1272 双素数
1题目 数学中两个素数的乘积所得的自然数我们称之为半素数也叫“双素数”输入一个正整数判断他是不是双素数输出YES或者NO。注意1不是双素数。不考虑0负数等特殊情况。 格式
输入格式
输入整型输出格式
输出YES或者NO样例1
输入
6输出
YES备注
输入N小于5002参考代码
#includestdio.h
int PrimeNumber(int num)
{int flag 1;for (int k2;knum;k){if (num % k 0){flag 0;}}return flag;
}
int main()
{ int N, i, j;scanf(%d, N);for (i2;iN;i){if (PrimeNumber(i)){for (j2;jN;j){if (PrimeNumber(j)){if (N % i 0 N % j 0 i * j N){printf(YES);return 0;}}}}}printf(NO);return 0;
}MT1273 N以内双素数
1题目 数学中,两个素数的乘积所得的自然数我们称之为半素数也叫“双素数”输入一个正整数输出0到N之间包括N所有双素数。注意1不是双素数。不考虑0负数等特殊情况。 格式
输入格式
输入整型输出格式
输出整型空格分隔。样例1
输入
26输出
4 6 9 10 14 15 21 22 25 262参考代码
#includestdio.h
int PrimeNumber(int num)
{int flag 1;for (int t 2; t num; t){if (num % t 0){flag 0;}}return flag;
}
int main()
{ int N;scanf(%d, N);for (int i2;iN;i){for (int j2;ji;j){if (PrimeNumber(j)){for (int k2;ki;k){if (PrimeNumber(k)){if (i % k 0 i % j 0 k * j i){printf(%d , i);goto again;}}}}}again:;}return 0;
}MT1274 都相差6
1题目 请编写一个简单程序输出5个质数使相邻的每两个质数都相差6并把它们按由小到大的顺序排列起来。这样的可能有多组输出最小的一组。 格式
输入格式
无输出格式
输出整型空格分隔。样例1
输入
无输出
5 11 17 23 292参考代码
#includestdio.h
int main()
{ int flag;for (int i2;;i){flag 1;for (int ji;j i 24;j 6){for (int k2;kj;k){if (j % k 0){flag 0;break;}}if (flag 0){break;}}if (flag 1){for (int ni;n i 24;n 6){printf(%d , n);}break;}}return 0;
}MT1275 都相差10
1题目 请编写一个简单程序由小到大的顺序输出3个相差10的质数。这样的可能有多组输出最小的一组。 格式
输入格式
无输出格式
输出整型空格分隔。样例1
输入
无输出
3 13 232参考代码
#includestdio.h
int main()
{ int flag;for (int i2;;i){flag 1;for (int ji;j i 20;j 10){for (int k2;kj;k){if (j % k 0){flag 0;break;}}if (flag 0){break;}}if (flag 1){for (int ni;n i 20;n 10){printf(%d , n);}break;}}return 0;
}MT1276 偶数N
1题目 输入偶数N偶数N大于2返回两个素数其和等于偶数N。可能有几种的组合仅输出最小值所在的组合按从小到大输出。 格式
输入格式
输入偶数N 输出格式
输出整型空格分隔。样例1
输入
74输出
3 712参考代码
#includestdio.h
int main()
{ int N, num, flag 1;scanf(%d, N);for (int i2;iN;i){for (int j2;ji;j){if (i % j 0){flag 0;}}if (flag 1){num N - i;for (int j2;jnum;j){if (num % j 0){flag 0;}}if (flag 1){printf(%d %d\n, i, num);return 0;}}flag 1;}return 0;
}MT1277 合数世纪
1题目 如果一个世纪中的100个年号都不是素数这个世纪就叫做合数世纪。求第一个合数世纪。从公元0年开始算。 格式
输入格式
无输出格式
输出这个世纪的第一年样例1
输入
无输出
16718002参考代码
#includestdio.h
#includemath.h
int main()
{ int flag1, flag2;for (int i0;;i100){flag2 1;for (int ji;ji100;j){flag1 0;for (int k2;ksqrt(j);k){// if (k 0 || k 1)// {// flag1 1;// break;// }if (j % k 0){flag1 1;}}if (flag1 0){flag2 0;break;}}if (flag2 1){printf(%d, i);break;}}return 0;
}MT1278 自然数N的立方
1题目 自然数n的立方等于包含n个连续奇数的序列之和。比如2的立方等于2个连续奇数3、5之和3的立方等于3个连续奇数7、9、11之和。输入n,按下面格式输出。不考虑0负数或者其他特殊情况。 格式
输入格式
输入为整型输出格式
输出为整型样例1
输入
5输出
5*5*521232527291252参考代码
#includestdio.h
#includemath.h
int main()
{ int n, cube_n, middle, first;scanf(%d, n);int a[n];cube_n pow((double)n, 3.0);if (n % 2 0){middle cube_n / n;first middle - 1 - (n - 2);a[0] first;for (int i1;in;i){a[i] a[i-1] 2; }}else{middle cube_n / n;first middle - (n - 1);a[0] first;for (int i1;in;i){a[i] a[i-1] 2;}}printf(%d*%d*%d, n, n, n);for (int i0;in;i){if (i n - 1){printf(%d, a[i]);}else{printf(%d, a[i]);}}printf(%d, cube_n);return 0;
}MT1279 危险的粒子
1题目 核反应堆中每秒钟内一个c粒子可以产生3个β粒子而一个β粒子可以产生1个α粒子和2个β粒子。若在t0时刻反应堆中有一个α粒子求t秒时反应堆中分别有多少个α粒子和β粒子。不考虑不合理的输入等特殊情况。 格式
输入格式:
输入整型输出格式:输入整型空格分隔样例1
输入格式:
6输出格式:
183 5462参考代码
#includestdio.h
int main()
{ int t, a 1, b 0, temp;scanf(%d, t);for (int i0;it;i){temp a;a b;b 3 * temp 2 * b;}printf(%d %d, a, b);return 0;
}MT1280 后2位数
1题目 输入两个整数x和y计算x的y次方的最后2位数。不考虑负数。 格式
输入格式
输入为整型空格分隔输出格式
输出为整型
样例1
输入
13 12输出
812参考代码
#includestdio.h
#includemath.h
int main()
{ int x, y, num 1;scanf(%d %d, x, y);for (int i0;iy;i){num * x;num % 100;}printf(%d, num);return 0;
}