任务描述
在数论中,卡迈克尔函数λ取一个正整数n,并返回最小正整数k,使得每个整数铜对n的k次方等于1模n。
给定一个正整数n,您的解必须计算λ(n)。以字节为单位的最短代码获胜。
您的程序理论上应该适用于任意大的输入,但不需要高效。
贴士
所有OEIS A002322 (N)序列均为λ(n)。
未使用的Python实现看起来如下所示
from fractions import gcd
def carmichael(n):
coprimes = [x for x in range(1, n) if gcd(x, n) == 1]
k = 1
while not all
我正在编写一个程序,读取两个正整数(m和n),然后只使用while循环打印m的n个第一个正整数。
这是最初的问题
用Python3.x语言编写一个程序,读取两个正整数m和n,并打印第一个n个正整数,它们是m的倍数。
代码的输出应该如下所示:
Type a positive integer for m: 9
Type a positive integer for n: 5
The first 5 positive integers multiples of 9 are:
9
18
27
36
45
到目前为止,我已经做了如下工作:
m = int(input("Type a
给定正整数b, c, m,其中(b < m) is True是找到一个正整数e,使得
(b**e % m == c) is True
其中**是求幂(例如,在Ruby、Python或^中,在其他一些语言中),%是模运算。解决这个问题的最有效的算法(具有最低的big-O复杂度)是什么?
示例:
给定b=5;c=8;m=13,此算法必须找到e=7,因为5**7%13 =8
我必须使用python开发一个程序,它接受一系列正整数作为输入,并输出每个正整数是否为质数。如果输入的是负数,则程序应该终止,并且应该打印该数字。1不是质数。问题是当我输入一个负数时,我的程序不会运行,它会给出一个素数。
num=int(input('Enter:'))
for num in range (1,num+1):
for i in range(2,num):
if (num%i==0 or num==1):
print num
break;
else:
print num,
我一直在努力解决这个问题:
找到a,b,c的正整数解,1≤a<b<c≤30和b/a+c/b+a/c是正整数。
所以我在python中写了这个:
for i,j,m in range(1,31):
if i<=j and j<=m and j/i+m/j+i/m>=0:
try:
print(int(j/i+m/j+i/m))
except TypeError:
continue
但是它没有起作用。
以及错误消息:
for i,j,m in range(1,31):
TypeE
在Python工作。
取k和n个正整数。
我有一个函数F,输入一个正整数列表L,其中len(L) = k,max(L) < n+1,F返回一个整数。
我想返回L的和(F(L))--一个正整数列表,其中包含len(L) = k,max(L)<n+1)
简单的方法是有k个嵌套的for循环。
value = 0
for jj1 in range(1,n+1):
for jj2 in range(1,n+1):
...
for jjk in range(1,n+1)
value = value + F([jj1,jj2,...,jjk
如何改进这段代码以计数Python中正整数n的位数?
def bitcount(n):
a = 1
while 1<<a <= n:
a <<= 1
s = 0
while a>1:
a >>= 1
if n >= 1<<a:
n >>= a
s += a
if n>0:
s += 1
return s
假设我想要生成一组正整数的列表,在python中,正整数的平方小于100。
我最初的想法是这样做
from itertools import count
numbers = [x for x in count() if x**2<100]
然而,这段代码不会完成,因为python会经历无限多的数字。
据我所知,有两种解决办法:
在要遍历的整数范围上加上一个界,所以使用范围(1000)而不是上面的count()。
使用while循环,当x平方大于或等于100时,递增x并停止循环。
这两种解决方案都不是优雅的,也不是(据我所知) pythonic。在无限容器上迭代时,是否有一
所以问题是这样的,我对python还不熟悉:
def factorial_cap(Num):正整数n的,n的阶乘(表示为n!),是从1到n包含的所有正整数的乘积。实现返回最小值的函数。
正*!大于或等于参数num。0假设: num总是一个正整数。
# Examples
# factorial_cap(20) output is 4 since 3!<20 but 4!>20
# factorial_cap(24) output is 4 since 4!=24
# factorial_cap(1) output is 1 since 1!=1
# And here is wh
问题陈述:
给你两个正整数d和s。求最小正整数n,它可被d整除,其数字之和等于s。
输入:
第一行包含两个正整数d和s(1≤d≤500,1≤s≤5000 )。
输出:
打印所需的号码或-1,如果它不存在。
这是我的代码:
d_and_s = [int(x) for x in input().split()]
counter_dracula = 0
while True:
if counter_dracula%d_and_s[0] == 0 and sum(map(int, str(counter_dracula))) == d_and_s[1]:
break
众所周知,浮点值不能准确地表示每一个十进制值。因此,1/3的浮点值并不完全是1/3。因此,通常不宜直接比较浮点值。
然而,在这个应用程序中,我试图确定两个分数a/b和c/d是否等价。如果是,则存在整数e和f,使得a * e = c * f和b * e = d * f。假设a,b,c,d,e,f都是正整数,完全可以用浮点值表示。
在实践中,简单地将a/b c/d 与c/d进行比较是有效的,但它是否可以保证工作呢?在Python和/或IEEE-754中有什么东西可以保证这样的方案能够工作吗?
示例代码(显示此方案适用于合理数量的值):
a = 1.0
b = 3.0
for c in xrange
任务
编写一个Python,它从标准输入中读取一个正整数n,并输出第一个n甚至自然数,每行一个。
(取自然数为1,2,3,4,等等)
我是Python的初学者,所以我需要使用while循环,不需要for或in。
我们了解到:
while i < n:
print i
i = i + 1
所以这个答案需要一个变化。
我正在使用Anaconda (Python3.6)。
在交互模式下,我对正整数>256进行了对象标识测试:
# Interactive test 1
>>> x = 1000
>>> y = 1000
>>> x is y
False
显然,大整数(>256)在单独的行中写入不能在交互模式中重用。
但是,如果我们在一行中编写赋值,则会重用大型正整数对象:
# Interactive test 2
>>> x, y = 1000, 1000
>>> x is y
True
也就是说,在交互模式下
我有一个编码问题是这样的:
给定一个正整数N,返回所有可能的正整数对(x,y)的列表,以便使\frac1x+\frac1y=\frac1N
我已经用Python解决了这个问题,但我想知道如何编码它。以下是我打高尔夫球的尝试(我试着在技巧页面上跟随一些提示):
108个字节
exec("f=lambda N:[b for i in range(1,N+1)if N*N%i==0"+"for b in[%s,%s[::-1]]][:-1]"%(("[N+i,N+N*N//i]",)*2))
在网上试试!
为提高可读性而编写的代码
def f(N):
我正在学习C++,并尝试创建一个程序来查找正整数的阶乘。我已经找到了正整数的阶乘。但是,当输入不是正整数时,我仍然试图让程序给出一个错误消息。到目前为止,错误消息已与标准输出消息相结合。
如何构造循环,以便为正整数输入找到给定正整数的阶乘,而只在输入不是正整数时提供错误消息?密码在下面。谢谢。
#include<iostream>
#include<string>
using namespace std;
int main()
{
int i;
int n;
int factorial;
factorial = 1;
我正在尝试编写一个程序,它使用while循环反复要求用户输入一个正整数,直到他们输入为止,但是我的代码在they之后一直打印数字,第二次询问,我不想这样做。以下是我的代码:
num = int(input("Enter a positive integer: "))
while num <= 0:
print(int(input("Enter a positive integer: ")))
print(f"{num} is positive.")
这就是我在执行代码时打印的内容:
输入正整数:-4
输入正整数:-3
-3
输入