北航机试题及详细答案.docxVIP

  • 18
  • 0
  • 约7.83千字
  • 约 10页
  • 2026-04-16 发布于河北
  • 举报

北航机试题及详细答案

第一题:素数筛选(基础题,30分)

题目描述

输入一个整数n(2≤n≤10000),要求输出所有从1到这个整数之间(不包括1和这个整数)个位为1的素数,如果没有则输出-1。输入包含多组测试数据,每组数据占一行,包含一个整数n。每组数据输出占一行,由小到大输出所有满足条件的素数,素数之间单个空格隔开,没有则输出-1。

输入样例:100

输出样例:1131416171

详细答案

1.解题思路

核心需求:筛选区间(1,n)内,个位为1且为素数的数字。步骤如下:

1.先判断一个数是否为素数(素数定义:大于1,除了1和自身外无其他约数);

2.再判断该素数的个位是否为1;

3.处理多组测试数据,每次输入n后,遍历2到n-1,筛选符合条件的数,无符合条件则输出-1。

易错点:1不是素数,需跳过;个位判断用n%10==1,避免遗漏;多组输入需循环处理,直到输入结束。

2.C语言代码(可直接AC)

c

#includestdio.h

#includemath.h

//判断一个数是否为素数

intisPrime(intx){

if(x=1)return0;//1及以下不是素数

if(x==2)return1;//2是素数

if(x%2==0)return0;//偶数(除2外

文档评论(0)

1亿VIP精品文档

相关文档