问题是:能被从1到20的所有数字整除的最小正数是多少?
我写了下面的程序,它给出了正确的输出,但它花了很长的时间来执行。
我可以做些什么来紧固我的程序?
public class ep5 {
public static void main(String[] args) {
int n=100,k=0;
boolean check=true;
while(check)
{
k=0;
n++;
for (int i=2;i<21;i++)
if(n%i!=0)
编写一个执行以下操作的程序:
要求用户输入一个整数N1。要求用户输入一个整数N2。打印出大于或等于N1以及小于或等于N2.的11倍的倍数。
我已经这样做了,但是程序要求打印出多少个数字可以与11相乘,但必须大于N1,小于N2,这就是我遇到麻烦的地方。
#include <stdio.h>
int main () {
int N1;
printf("Enter an integer N1: ");
scanf("%d", &N1);
int N2;
printf("Enter an integ
数独回溯方法
int xx = (pos.getX() / 3) * 3;
int yy = (pos.getY() / 3) * 3;
for (int y = 0; y < 3; y++) {
for (int x = 0; x < 3; x++) {
if ((xx + x != pos.getX()) && (yy + y != pos.getY())) {
possible[work[x
要计算N小于N的联合素数的整数的数量,我们可以简单地计算它的。然而,要计算N的共同质数但小于M的整数的数量,其中M<N,我们如何修改/计算它?我已经尝试了计算ETF的代码,但无法继续如何修改它以获得所需的结果。
代码:
int etf(int n)
{
int result = n;
int i;
for(i=2;i*i <= n;i++)
{
if (n % i == 0) result -= result / i;
while (n % i == 0) n /= i;
}
if (n >
我试图用向量编写Eratosthenes算法
1) Fill vector with integers 2 to N
2) Find the smallest integer i, print it, delete i, 2i, 3i, etc from vector
3) Repeat 2) until i is greater than square root of N
我对矢量还不熟悉,还被困在这里:
std::vector<int> x (n-1);
for (int i = 2; i < n+1; i++){ //fill vector with 2 to
我正在寻找这个函数的优化:
public bool isDivideEvenly (int[] num, int[] div)
{
for (int x = 0; x < num.length; x++)
{
for (int y = 0; y < div.length; y++)
{
if (num[x] % div[y] == 0) return true;
}
}
}
我对Java非常陌生,我想要求解释一个非常简单的代码。它应该找到两个数的最大公因子( GCD )。遗憾的是,我无法理解checkGCD函数背后的逻辑。对于允许获得共同分母的b和mod b到底发生了什么?
private static int checkGCD (int a, int b) {
if (b == 0) {
return a;
}
return checkGCD(b, a%b);
}
我的代码似乎不适用于项目Euler,问题1。该问题声明:
如果我们列出所有低于10的自然数,它们是3或5的倍数,我们得到3,5,6和9。这些倍数之和是23。
找出低于1000的3或5倍数之和。
我的程序的输出是
266333
我的代码是:
private static final int max = 1000;
private static int sum;
public static void main(String[] args)
{
addMultiples(3);
addMultiples(5);
我有一个单节点Hadoop集群版本- 2.x。我设置的块大小是64MB。我有一个HDFS格式的输入文件,大小为84MB。现在,当我运行MR作业时,我看到有2个拆分,它的有效大小为84MB/64MB~2,因此有2个拆分。
但是,当我运行"hadoop fsck -blocks“命令来查看块的详细信息时,我看到了以下内容。
Total size: 90984182 B
Total dirs: 16
Total files: 7
Total symlinks: 0
Total blocks (validated): 7 (avg. bl
我在一个编码站点(没有作者的信息)上看到了这个算法,它计算所有小于给定限制的素数。它看起来非常类似于SoE算法,但它计算素数的方式不同:
public int countPrimes(int n) {
if (n < 3) return 0;
boolean[] s = new boolean[n];
int c = n / 2;
for (int i = 3; i < Math.sqrt(n); i += 2) {
if (s[i]) continue;
for (int j = i * i; j < n; j
我尝试了两种不同的方法来求素数之和。然而,这两种方法最终花费了很长的时间来处理大量的数据。如何优化这两种方法中的任何一种?
方法1(Eratosthenes筛):
import time
import math
primes_in_range = [2]
n = int(input("Enter the range of your sieve"))
start = time.time()
for x in range(3, n+1, 2):
primes_in_range.append(x)
d = 3
while d <= math.sqrt(n):
我有一个包含随机生成的值的列表。该列表的每个值对应于一个特定的参数,如距离、时间等。我已经创建了一个函数,它将该列表的每个值舍入到用户输入的数字数:
def round_list(list_x):
for i in range(0, len(list_x)):
incrementer = raw_input('Enter the increment value: ')
list_x[i] = np.round(list_x[i], int(incrementer))
return list_x
x = round_list(x)
我试图在解决这个问题时找到一个数的最大素因子,。我认为我做的一切都是正确的,但是其中一个测试用例(#2)失败了,我想不出它可能会失败的任何角落情况。这是我的代码,请看一看,并试图发现一些东西。
public class ProblemThree
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
int T = scanner.nextInt();
for (int i = 0; i < T; i++)
为什么这种方法更快?
x=list(range(0,1000000,3))
z=list(range(0,1000000,5))
y=list(range(0,1000000,15))
%timeit sum(x)+sum(z)-sum(y)
24 ms ± 1.25 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
为什么列表理解速度慢?
%timeit sum([i for i in range(1000000) if i % 3 == 0 or i % 5 == 0])
205 ms ± 7.4 ms per loop (me
我想我只是在努力理解这个问题,正因为如此,我的代码都错了。任何帮助都将是感激的,不需要给我完整的答案,只需要了解问题需要我做什么,如果有人能从我的照片中弄清楚。
我所用的代码是:
N = int(input())
a = 2
x = 2
while x < N:
x = a**2
if x > N:
pass
else:
print(x, end = " ")
a+=2
我必须写一个函数,在这个函数中找到最小的数字,它的数字之和是N。我无法用更好的方法来计算它,但它没有正确地添加,当在数组上添加ints时,它会以一个非常奇怪的模式相加。
public int sumN(int N) {
int total = 10;
char[] n;
ArrayList<Integer> nrs = new ArrayList<Integer>();
int sum = 0;
String x = "";
if(N<=9)
给出了一组整数S,以及一些包含整数w的问题。
对于每个问题,计算max{gcd(w,x)} (x in S)。
也给出了所有数n的范围,所以w<n,x<n (x in S)。
我尝试过简单地计算所有的gcds,但是它不够有效。我认为关键是做一些预处理,这样每个问题都可以在O(log )或更短的时间内完成。
这就是我试过的:
#include "iostream"
using namespace std;
int gcd(int a,int b){
return b?gcd(b,a%b):a;
}
int n,m,S[1000010],w;
int main(
假设我有一个矩阵A [m x 1],其中m不一定是偶数。我要创建一个矩阵B also [m x 1],它告诉我A中元素的十进制(即矩阵B的数字从1到10)。
我知道我可以使用函数sort(A)来得到元素在A中的位置,从那里我可以手动得到十进制。还有别的办法吗?
我认为一种可能是B = ceil(10 * tiedrank(A) / length(A)。你认为如何?这有什么问题吗?
而且,更普遍地说,如果我有一个矩阵A [m x n],并且我想要创建一个矩阵B also [m x n],其中B的每个列在A中应该有对应列的十分之一,那么是否有一种方法可以不通过这些列进行for循环?
希望眼前的问题