对于序列 1、1、2、2 、4、2、6,序列中的下一个项是什么?第n项是什么?



我想知道上述系列的模式,以便为上述系列编写代码。 我认为上面的系列是两个不同系列1,2,4,6的混合,...和 1,2,2,.. 请帮助我完成这个序列,并告诉我是否以正确的方式思考。

逻辑:--
系列 1-> Prime-1,即 [1, 2, 4, 6, 10, 12, 16, 18, 22, 28, 30, 36.....]
系列 2-> 数字系列,即 [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5....]
最终输出 -> 交替序列,即 [1 1 2 2 4 2 6 3 10 3 12 3 16 4 18 4 22 4 28 4....]

注意:
可能还有另一种逻辑,但通过给定的问题,这个系列可以通过下面的程序来识别。
请不要用于任何竞赛测试/考试

导入数学
全局li_prime;全球li_series;XP=0 def 素数(大小(:
全局li_prime;计数 = 2;

而伦(li_prime( isprime = 对于范围(2, int(math.sqrt(count( + 1((中的 x 为真(: 如果计数 % x == 0: isprime = 假
中断 如果 isprime:li_prime.append(count-1(count += 1
def series(size(: 全局li_series 对于范围(大小+1(中的 i: 对于范围 (i( 中的 j: li_series.append(i( 如果 len(li_series(>size:



中断 def main((:

全局 XP 全局 li_prime 全局li_series
测试用例=int(input(''((




对于 I 在范围(测试用例(:







li_series=[] li_prime=[] size=int(input(''(( prime(size( series(size( li_prime=li_prime[:size] li_series=li_series[:size] lc=[] for i in range(size//2+1(:
lc.append(str(li_prime[i](( lc.append(str(li_series[i]((




lc=lc[:size]





main((

它是最大公约数 (gcd( 为 1 的级数,也称为欧拉全能函数。

系列格式 = {1 1 2 2 4 2 6 32 .....168 80 216 120 164 100}

法典:

public static void main(String[] args) {
//n is the input for the size of the series
for(int j=1;j<=n;j++){
System.out.print(calSeriesVal(j)+" ");
}
}

private static int calDivisor(int a, int b)
{
if (a == 0)
return b;
return calDivisor(b % a, a);
}
private static int calSeriesVal(int n)
{
int val = 1;
for (int i = 2; i < n; i++)
if (calDivisor(i, n) == 1)
val++;
return val;
}

相关内容

最新更新