(这个问题指的是代码强制问题),我想知道是否有任何n (2 ≤ n ≤ 10¹⁴)有奇数除数。使用C++11,我认为通过迭代每一个奇数直到n,然后用%检查它是否是可除的,这是可能的。诸如:
for(unsigned long long i=3;i<n;i+=2){
if(n%i==0) return true; //It has an odd divisor
}
return false; //n%j==0 was never true so it doesn't have an odd divisor
当然,如果给出一个很大的数字,结果是非常缓慢的。我发现人们正在通过位移
在下面的代码片段中,我找到了区间a,b之间所有奇数的数字之和。
def SumOfDigits(a, b):
s = 0
if a%2 == 0:
a+=1
if b%2 == 0:
b-=1
for k in range(a,b+1,2):
s+= sum(int(i) for i in list(str(k)))
return s
是否有一种有效的方法来实现同样的目标?任何模式,这是导致一个明确的削减公式。
我在里搜索过
实际上,我是在教自己算法,在这里我试图解决以下问题:
我们有一个任意阶的n个正整数数组,我们有k,它是k>=1 to n,问题是输出k个最小的奇数整数。如果A中奇数数小于k,则应报告所有奇数整数。例如,如果A= 2,17,3,10,28,5,9,4,12,13,7和k= 3,输出应该是3,5,9,我想在O(n)时间内解决这个问题。
我目前的解决方案是有另一个只有奇数的数组,然后应用这个算法,通过找到中位数并将列表划分为L、中位数、右边,然后按以下方式比较k:
If |L|<k<= (|L|+|M|) Return the median
else if K<|L|, s
我的目标是在一个加权无向图中找到所有的圈及其各自的权重。循环的权重被定义为构成循环的路径的权重之和。我的预置算法执行以下操作:
dfs(int start, int now,int val)
{
if(visited[now])
return;
if(now==start)
{
v.push_back(val);// v is the vector of all weights
return;
}
dfs through all nodes neighbouring to now;
}
我从每个
我想找出两个整数之间的偶校验数的个数。以下是我到目前为止写的内容: #include <bits/stdc++.h>
using namespace std;
#define fastio \
ios_base::sync_with_stdio(false); \
cin.tie(NULL)
#define ll long long int
bool findParity(ll x)
{
ll y = x ^ (x >> 1);
y = y ^ (y >> 2);
y
你好,我一直在尝试做与Euler问题2相反的事情(也就是所有Fibonacci数之和都小于4,000,000)。我试图打印所有奇数Fibonacci数小于2,000,000的和,但是我似乎无法得到正确的答案。这是我到目前为止掌握的代码
fib1 = 1
fib2 = 2
fibholder = 0 #place holder for the new value
Sum = 0
while fibholder<2000000:
fibholder = fib1 + fib2
if fibholder%2==1:
Sum+=fibholder
fib1
给定一个int变量,我想检查它的二进制表示中'1‘的数目是偶数还是奇数。它可以通过xor操作来实现,比如
int n;
int s = 0;
for(;n;n>>=1)
s ^= (n&1);
在C++中有更好的方法来做到这一点吗?
注意:我不是要求'1's的数量,而是它的奇偶性,所以我想可能有一些比我的代码更好的代码。
求n^p的一种算法是:
unsigned long long power(unsigned n, unsigned p)
{
unsigned long long x=1, y=n;
while(p > 0)
{
if(p&1) x *= y;
y *= y;
p >>= 1;
}
return x;
}
有人能解释一下这个算法背后的逻辑/数学吗。我知道它能工作,并为一些测试用例(试运行)解决了问题。我的意思是,它是如何工作的,这是如何有效地从一般天真的方法。
我试图创建一个函数,该函数返回给定数字的最小素数:
require 'prime'
def findSmallestPrimeFactor(number)
return 2 if number.even?
return number if Prime.prime? number
arrayOfFactors = (1..number).collect { |n| n if number % n == 0 }.compact
arrayOfFactors.each { |n| arrayOfFactors.pop(n) unless Prime.prime? n
我正在研究Euler项目,问题3。问题是:
13195的素数是5,7,13和29。600851475143的最大素数是什么?
在回答这个问题时,我把任务分解为首先找到所有素数<x(反向)。为什么下面的代码似乎不工作,我不确定是逻辑或不正确的使用运算符。
#A function to find prime numbers under n
def find_prime(n):
for i in reversed(xrange(2, n)):
if (n % i) != 0:
print i
find_prime(n)
在测试中,为了好
这里我想从一组给定的数字中找出最大的奇数,如果那里没有奇数,则打印相应的效果。这里我将偶数的值设置为0,然后将其与其余的值进行比较,那么这是正确的逻辑吗?我得到了想要的结果,但具有偶数值的变量的值被设置为零。谢谢。
x, y, z = 45, 61, 82
if x%2==1 or y%2==1 or z%2==1:
if x%2==0:
x = 0
if y%2==0:
y = 0
if z%2==0:
z = 0
if x>y and x>z:
print(x)
elif
我正在用Python编写一个LCG函数,我将使用它来模拟抛硬币和生成游程的蒙特卡罗类型。我面临的问题是,当我生成一个随机数列表时,这些数字的模式是赔率和偶数交替的。我不知道这是LCG函数本身的属性,还是我生成数字的方式有误。
下面是我的代码:
def seedLCG(initVal):
global rand
rand = initVal
def lcg():
a = 1140671485
c = 128201163
m = 2**24
global rand
rand = (a*rand + c) % m
return ran
程序的目的是通过检查该数字是否可以被除以2而没有余数来查找字符串中的奇数,下面是代码:
def iq_test(numbers):
for x in numbers.split():
if x % 2 != 0:
return x
iq_test("1 2 3 4 5")
下面是运行代码时遇到的错误:
Traceback (most recent call last):
File "python", line 6, in <module>
File "python", line 3, i
我正在尝试解决上的一个问题。我想我已经解决了这个问题,因为它给了我正确的结果,但当我在网页中提交代码时,它会显示错误的答案。我不明白我哪里错了。你能帮帮我吗?
class Exercise
{
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
int divisor;
int count = 0;
int numbers = 0;
int low;
int high;
// Get the input of the user
我试着用python得到最小奇数。我用lambda,循环和其他方法来得到最小奇数,但是我不能用函数得到它。这是我的密码
z= [1,8,-4,-9]
def min_odd(x):
for i in x:
if (i%2!=0):
return min(i)
y = min_odd(z)
print (y)
有人能告诉我我在这里错过了什么吗。
我正在尝试用python为下面的for循环写一个列表理解 num_list = []
for num in range(10):
if num % 2 == 0:
num_list.append('EVEN')
else:
num_list.append('ODD') 我写了一些类似这样的东西 [num if num % 2 == 0 'EVEN' else 'ODD' for num in range(10)] 和 [num if num % 2 == 0 then 'EVEN' else
我编写了一种方法,以求奇数整数连续递减序列的最大和。
例如:如果序列为13 9 7 12 13 15 13,则和为29 (13 +9+ 7)。
我不认为它是好的,因为相同的代码会重复多次。
static int SumOfLargestSequence(int[] array)
{
int sumMax = 0;
int sum = 0;
for (int i = 0; i < array.Length; i++)
{
if (i == 0)
在MATLAB中计算某些方阵A的逆矩阵时,使用
Ai = inv(A)
% should be the same as:
Ai = A^-1
MATLAB通常会通知我,这不是最有效的倒置方法。那么哪个更有效率呢?如果我有一个方程系统,使用/,\运算符可能是。但有时我需要在其他计算中使用逆运算。
反转的最有效方法是什么?
我目前在uni学习Python课程,大概一周前才开始学习。在本练习中,我需要使用For循环打印' buffalo‘。我有以下几点:
a = "Buffalo"
for req in range(0,8,1):
print(a,end=" ")
这将导致8x Buffalo,但第2,4,5,6和8水牛应该是小写的。有人能告诉我怎么做吗?我在网上找不到它