只是我正在寻找的一个例子:我可以用一点代表每个奇数,例如对于给定的数字范围(1,10),从3开始:
__PRE__
以下字典可以挤得更对吗?我可以通过一些工作来消除五的倍数,但是以1,3,7或9结尾的数字必须在位数组中存在.希望这能澄清我想要的东西.
我正在寻找最好的算法,检查数字是否是素数,即布尔函数:
__PRE__
我想知道实现此功能的最佳算法.当然,我可以查询一个数据结构.我定义了最好的算法,它是生成数据结构的算法,该数据结构具有最低的内存消耗范围(1,N),其中N是常量.
我写了下面的代码,应该检查输入的数字是否是素数,但是有一个问题我无法通过:
def main():
n = input("Please enter a number:")
is_prime(n)
def is_prime(a):
x = True
for i in (2, a):
while x:
if a%i == 0:
x = False
else:
x = True
if x:
print "prime"
else:
print "not prime"
main()
Run Code Online (Sandbox Code Playgroud)
如果输入的数字不是素数,则显示"非素数",因为它应该是,但如果数字是素数,则它不显示任何内容.你能帮帮我吗?
我正在尝试完成代码检查挑战,要求您检查数字是否为素数.无论出于何种原因,我的解决方案似乎不适用于奇素数的平方(例如9返回true而不是false).
function isPrime(num) {
if (num === 2) {
return true;
}
else if(num > 1){
for (var i = 2; i < num; i++) {
if (num % i !== 0 ) {
return true;
}
else if (num === i * i) {
return false
}
else {
return false;
}
}
}
else {
return false;
}
}
console.log(isPrime(121));
Run Code Online (Sandbox Code Playgroud)
Ps我包括第二个else/if语句,因为我试图解决问题.
如何使用swift检查数字是否为小数?
使用Objective-C:
if (number == (int) number) {
//decimal
}
else {
//not decimal
}
Run Code Online (Sandbox Code Playgroud) 我试图生成范围x到y的所有素数.我先尝试了一个简单的例子:range(10,11)这意味着检查10是否是素数:
这是我的代码:
prime_list = [x for x in range(10, 11) for y in range(2,x) if x % x == 0 and x % 1 == 0 and x % y != 0]
Run Code Online (Sandbox Code Playgroud)
我知道事情是缺少告诉表达式的选项,x%y != 0应该检查所有y in range (2,x)并且当且仅当所有人都满足这个条件时才返回true.
我们怎么做?
我试图找到一种有效的方法来计算Euler的totient函数.
这段代码有什么问题?它似乎没有工作.
def isPrime(a):
return not ( a < 2 or any(a % i == 0 for i in range(2, int(a ** 0.5) + 1)))
def phi(n):
y = 1
for i in range(2,n+1):
if isPrime(i) is True and n % i == 0 is True:
y = y * (1 - 1/i)
else:
continue
return int(y)
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个程序来测试一个值是否为素数,但我不知道如何.这是我的代码:
class DetermineIfPrime
def initialize (nth_value)
@nth_value = nth_value
primetest
end
def primetest
if Prime.prime?(@nth_value)
puts ("#{@nth_value} is prime")
else
puts ("This is not a prime number.")
end
rescue Exception
puts ("#{$!.class}")
puts ("#{$!}")
end
end
Run Code Online (Sandbox Code Playgroud)
每次我运行它都会返回.
NameError
uninitialized constant DetermineIfPrime::Prime
Run Code Online (Sandbox Code Playgroud)
我尝试了其他方法来完成这项工作,但我认为这是我能得到的最接近的方法.
我也试过这个:
class DetermineIfPrime
def initialize (nth_value)
@nth_value = nth_value
primetest
end
def primetest
for test_value in [2, 3, 5, 7, 9, 11, 13] do
if (@nth_value % test_value) == 0
puts ("#{@nth_value} is not divisible by #{test_value}")
else …Run Code Online (Sandbox Code Playgroud) 要检查一个数是否为素数,最简单的方法是尝试将数除以 2 到 n,如果任何运算得到余数为 0,则我们说给定的数不是素数。但是最好只在 n/2 之前进行划分和检查(我知道更好的方法是直到 sqrt(n) ),我想知道跳过后半部分的原因。
假设我们是否需要检查数字 11 是否为质数,11/2 = 5。如果我们在这两种情况下都执行 11/6 或 11/7 或 11/8 或 11/9 或 11/10,我们得到的余数为0. 对于任何给定的数字 n 也是如此。
这就是避免下半场的原因吗?“如果你将给定的数字除以任何大于给定数字一半的数字,余数永远不会为 0 或者换句话说,任何大于给定数字一半的数字都不能整除给定数字”
请帮助我知道是否正确
什么是更正确的函数方式来编写以下代码来检查数字是否为素数:
(defn prime? [n]
(loop [k 2]
(cond
(< k n) (if (not= 0 (mod n k))
(recur (inc k))
(println n "is not prim"))
:else (println n "is prim"))))
Run Code Online (Sandbox Code Playgroud) 我应该创建一个类PrimeNumberGenerator,它有一个方法nextPrime可以打印出所有素数,直到用户输入的数字.
例)
Enter a Number:
20
2
3
5
7
11
13
17
19
Run Code Online (Sandbox Code Playgroud)
我们的老师告诉我们,我们应该使用嵌套for循环.我试过了,但是当我试图制作内部(嵌套)循环时,我真的很困惑.
这是我的代码:(我稍后会做一个测试课)
public class PrimeGenerator {
private int num;
boolean isPrime;
public PrimeGenerator(int n)
{
num = n;
}
public int nextPrime (int num)
{
for (int i=2; i < num; i++) // The first prime number is 2 and the prime numbers only have to go up to a number the user inputs.
{
for (int j = 3; …Run Code Online (Sandbox Code Playgroud)