gpt4 book ai didi

c - 检查数字的数字子序列的 C 程序

转载 作者:行者123 更新时间:2023-11-30 20:51:13 25 4
gpt4 key购买 nike

我需要编写一个程序,例如,当给定数字 879 时,必须检查该数字是否是质数以及它的所有数字子序列是否都是质数,即 87,79,8,7,9 等。到目前为止,我已经做了一个检查数字是否为质数的函数,但不知道如何将数字拆分为其数字子序列。

最佳答案

x是数字。您可以首先确定位数, n ,共 x 。例如,如果 x = 543689然后n = 6 。例如,这可以通过对数轻松确定(可通过 math.h 获得)。 x 中的每个数字有一个地址,i ,范围为0,1,...,n-1 。使用从右到左的排序是很自然的,因此在上面的示例中 i=0对应于数字 9 而不是 5。

设置一个嵌套的 for 循环,循环遍历所有索引对 i,j0 <= i <= j <n 。每次通过内部循环时,您都需要获取起始索引 i 的数字。和结束索引 j 。您可以通过两步完成此操作

1) 让y = x % (10^(j+1)) 。这将使 y等于最左边数字为索引的子字符串 j 。例如,如果 x = 543689j = 4然后10^5 = 100000543689 % 100000 = 43689 -- 从索引 4 开始的子序列。

2) 除y通过10^i -- 这将丢弃该位置右侧的所有内容 i 。例如如果 i=2y = 43689然后y / 100 = 436 。请注意,436 是 543689 的一部分,最左边的索引为 4,最右边的索引为 2。

C 没有内置的幂运算符。您可以适本地初始化 int拥有权力的变量10^(j+1)10^i并在每次循环中适当更新这些幂(乘以 10)。

这里是这些想法的 Python 实现(Python 因为我不想给 C 因为这听起来像家庭作业)。唯一可能不言自明的是 // -- 这是Python 中的整数除法。在C中你可以只使用/ -- 假设您正在处理 int变量:

x = 879
n = 3
for i in range(n):
for j in range(i,n):
y = x % 10**(j+1)
y = y // 10**i
print(y)

输出:

9
79
879
7
87
8

关于c - 检查数字的数字子序列的 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34018328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com