首页 > 试题广场 >

小红的合数寻找

[编程题]小红的合数寻找
  • 热度指数:6152 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1024M,其他语言2048M
  • 算法知识视频讲解
\hspace{15pt}小红拿到了一个正整数 x,她希望你在 [x, 2 \times x] 区间内找到一个合数,你能帮帮她吗?

\hspace{15pt}一个数为合数,当且仅当这个数是大于 1 的整数,并且不是质数。

输入描述:
\hspace{15pt}在一行上输入一个正整数 x \left(1 \leqq x \leqq 100\right)


输出描述:
\hspace{15pt}如果范围内不存在符合条件的合数,则输出 -1。否则,输出一个正整数代表答案。
\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

1

输出

-1

说明

\hspace{15pt}在这个样例中,我们需要在 [1, 2] 区间内找到一个合数。根据定义,1 不是合数,2 是质数,所以范围内不存在合数。
示例2

输入

5

输出

8

说明

\hspace{15pt}在这个样例中,我们需要在 [5, 10] 区间内找到一个合数。根据定义,6,8,10 均是合数,所以输出任意一个均为正确答案。

完整版

# 判断是否为质数
def is_prime(num: int):
    for i in range(2, int(num**0.5)+1):
        if num % i == 0:
            return False
    return True

x = int(input())

for i in range(x, 2*x+1):
    if i == 1: print(-1)
    else:
        if not is_prime(i):
            print(i)
            break


发表于 2025-06-24 18:05:10 回复(0)
x = int(input())
print(-1) if x == 1 else print(2*x)

发表于 2025-05-27 14:40:10 回复(0)
逃课版:
x=int(input())
if x==1:
    print(-1)
else:
    print(2*x)


发表于 2025-05-21 22:26:24 回复(1)
x = int(input())
if x ==1:
    print("-1")
else:
    for i in range(x,2*x+1):
        if i%2 ==0 and i != 2:
            print(i)
            break

发表于 2025-02-28 14:59:21 回复(1)