我想知道为什么这个java程序不能找到一个数的质因数。我在这个站点和其他地方看到了许多解决方案,但我想知道为什么这种方法是不够的,因为它只返回1作为输出?第一个"if语句“处理从1到更小的数字,返回-1 (无效值),谢谢。
public class PrimeFactors{
public static void main(String[] args) {
System.out.println(getPrimeFactors(4));
}
public static int getPrimeFactors(int number) {
我要做一个程序,从N个数字的随机数,它是由用户给出的,程序必须打印它找到的第一个素数。但是,我必须使用以下唯一的方程来检查一个数字是否为素数: a^p=a mod p. (a是一个随机数,每次取不同的值)。如果p通过测试10次,那么它就是素数,即使失败一次,它也不是。
我的问题是"a^p =a mod p“并不总是有效的。我的朋友们说这是对的而且应该有效。
这是我的密码:
from __future__ import division
import random
found = False
flag = True
def prime(p):
i=0
flag = True
whi
现在我知道java没有无符号字节,但如果没有,我不确定如何解决这个问题。我正在尝试在java中实现SHA256散列,并且正在将消息转换为512位。
int l = bytes.length; //total amount of bytes in the original message
int k = 0;
while((l+1+k) % 512 != 448) {
k++;
}
//k is the total amount of 0's to be padded
int rest = k % 8; //get the amount of 0's to be
是否有一个有效的算法来计算最小整数N,使N!可以被p^k整除,其中p是一个相对较小的素数,k是一个非常大的整数。换句话说,
factorial(N) mod p^k == 0
如果,给定N和p,我想知道p除以N的次数!,我会使用众所周知的公式。
k = Sum(floor(N/p^i) for i=1,2,...
我做过蛮力搜索k的小值,但是随着k的增加,这种方法很快就崩溃了,而且似乎没有一个模式,我可以推断出更大的值。
2011年6月13日编辑
使用Fiver和Hammar提出的建议,我使用了一个准二进制搜索来解决这个问题,但并不完全按照他们建议的方式解决。使用上述第二个公式的截断版本,我计
对于给定的日期,我使用Steve Kass公式来获得上个月的第n周的第n天。它工作得很好--但我真的不明白模运算数在公式中做了什么。有人能解释一下吗?我试着在下面提供一些假设:
declare @svcDate as datetime= '1/6/2017', @myN as tinyint=4, @myD as tinyint=1
declare @ret datetime;
declare @first datetime -- First of the month of interest (no time part)
declare @nth tinyint
在C和C++中,INT_MIN % -1的行为似乎与没有定义/依赖于平台。
在Java中,%操作符是否溢出?
考虑一下这段代码:
public class Test {
public static void main(String[] args) {
// setup variables:
byte b = Byte.MIN_VALUE % (-1);
short s = Short.MIN_VALUE % (-1);
int i = Integer.MIN_VALUE % (-1);
long l = L
我有个号码。例如,我的号码是19。然后,我想在下拉列表中填充乘法范围为5的范围。因此,我的下拉列表将包括:1-5 6-10 11-15 16-19。
我试过模数和除法,但是,我似乎无法得到范围。有固定的方法吗?
样本代码
List<string> range = new List<string>();
int number = 19;
int numOfOccur = (19/5);
for (int i = 1; i < numOfOccur ; i++)
{
range.Add(i + " - " + (i * 5))
}
我试图创建一个代码来计算Java中CRC错误检测/校正的其余部分,但是我不知道它和二进制除法之间有什么区别。
在以下情况下:
BigInteger G = new BigInteger("1001", 2);
BigInteger M = new BigInteger("101110", 2);
BigInteger R = M.remainder(G);
R值为:1
但是,当我手动计算CRC余数时,它将是: 011
这里有什么不同,是否有计算CRC余数的方法或算法?
有人能帮我解决这个问题吗?这是我的Java入门类!当给定一个整数数组时,我需要确定平均值。我的代码当前打印3,而它应该打印3.5: class Main {
public static void main(String[] args) {
int[] counts = {1, 2, 3, 4, 5, 6};
int sum = 0;
int counter = 0;
while (counter < counts.length) {
sum = sum + counts[counter];
counter++;
}
我是java的新手,我正在尝试写这个程序作为练习。程序获取当前时区偏移量并显示当前时间。但有些人认为我的时间是负的。我认为这里有一个逻辑错误,但我找不到它。
Enter the time zone offset to GMT: -4
The current time: -2:48:26
我正在使用纽约(GMT -4小时)
// A program that display the current time, with the user input a offset
import java.util.Scanner;
class CurrentTime {
public static
假设我有(-5) mod 8。
我用Java和C两种语言进行了尝试,当我期望使用-5时,他们给了我一个3结果。
为什么会发生这种情况?模数可以是负的吗?我应该改变什么才能得到正确的结果呢?
Java代码
public class Example {
public static void main(String[] args) {
int x;
x = -5%8;
System.out.println(x);
}
}
C代码
int main(){
int x;
x = -5%8;
printf("%
对不起,我只是在学习java,我对编码还很陌生!我的代码的任务是根据奇数和偶数来计算输入。如果没有math.abs行,代码将无法正确识别负数的奇偶值。
我使用math.abs命令进行了修复,以转换负值并获得所需的结果。但是,我只想知道为什么这一步是必要的,以及java scanner如何解释负值/符号并在没有修复的情况下提供错误的答案。
import java.util.Scanner;
public class EvenOrOdd {
public static void main(String[] args) {
Scanner reader = new Sca
我正在为Mastermind类型的游戏编写java代码,其中计算机生成一个随机的4位数供玩家求解,而不是颜色。如果猜测是不正确的,则应该指出猜测中的哪些数字位于生成的随机数的正确位置。下面是我的代码:
import java.util.Scanner;
import java.util.Random;
import java.lang.String;
public class CSCD210HW2
{
public static final int MAX = 10;
public static void main(String [] args)
{
int n
我正在创建一个Java程序,将数组中的天分配给一年中的天,所以我需要在七天后重新初始化我的数组。如何在for-loop块中重新初始化"I“变量。 public static void mainAction() {
for (int i = 0; i < day.numberOfDays; i++) {
if (day.dayNum == (i + 1))
day.day = DAYS[i];
if (dayNum == 7)
day.day = 1;
}
} 这段代码一直在运行
import java.text.BreakIterator;
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner in= new Scanner(System.in);
System.out.println("nomber");
int n= in.nextInt();
int s= n*n;
int l = (""+s).length();
我正在用Java做一项与货币有关的大学作业。为此,建议我使用整数而不是双精度,然后在打印语句时将其转换为美元值。
在我对数字4005进行计算之前,一切都运行得很好(比如$40.05表示为一个整数)。我正在粘贴我有问题的部分代码,如果有人能告诉我我做错了什么,我将不胜感激。
import java.io.*;
class modumess {
public static void main(String[] args) {
int money = 4005; //Amount in cents, so $40.05;
// Represent as no
我需要找到所有能被10整除且小于n的正数,我找到了一个带有相同问题的字符串,但我很难解释它,因为用户使用的是java,所以代码非常不同,令人困惑。
我试着通过拼凑我检查过的代码来做一个代码,但它只有在被其他数字整除的情况下才有效,如果它是10,它将永远保持0。
n = int(input("Enter a number: "))
x = 0
while x < n :
r = n % 10
if r % 10 != 0 :
x = x + r
print("positive numbers divisible by 10 &