我必须得到一个素数序列。但是我的代码不能工作。怎么可能修复它呢?
var num1 = parseInt(prompt('Enter a number'));
var num2 = parseInt(prompt('Enter a number'));
var num3 = 0;
function primeSeq(num1, num2) {
var b = 1;
var c = '';
if (num1 > num2) {
num3 = num2;
num2 = num1;
num1 = num3;
}
for (va
我的朋友给了我这段代码,我似乎找不到其中的错误。我附上了下面的代码:
import java.util.*;
public class prg {
public static void main(String[] args) {
int n;
int count;
int a=0,b=1;
int c=0;
Scanner kb=new Scanner(System.in);
n=kb.nextInt();
int ar[]=new int[100];
我写了一个快速筛子来测试一个数字是否是质数。我有两个问题:
1)我测试了一个200位的质数,它错误地说它不是质数。我相信这是由于浮点错误(或类似的错误)。我如何才能使这一点更准确?
2)有没有更好的方式来写这篇文章?我使用了decimal来处理更大的数字。这是最好的方法吗?
import math
from decimal import *
def isprime(n):
i = 2
a = 1
if n == 1:
return 0
if n == 2 or n == 3:
return 1
while i < n
事实上,我的老师已经通过了计算从1到N的素数的程序,但是我不理解代码中的一些东西,我很想帮忙。
在第18行中,我们有以下内容:for(j=2; j<=i/2; j++),因为j除以2?为什么j从2开始?我和j不应该从1开始吗?
#include <stdio.h>
int main() {
int i, j, n, isPrime; //isPrime is used as flag variable
/* Reads upper limit to print prime */
printf("Find prime numbers betw
我是一个编程新手,我正在练习我的C#编程技能。我的应用程序的目的是找到用户输入的数字的最大素因数。但是我的应用程序没有返回正确的答案,我也不知道问题出在哪里。你能帮帮我吗?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.
我不明白为什么这个不起作用。请帮帮我
from math import sqrt
pN = 0
numPrimes = 0
num = 1
def checkPrime(x):
'''Check\'s whether a number is a prime or not'''
prime = True
if(x==2):
prime = True
elif(x%2==0):
prime=False
else:
root=int(sqrt(x))
for i
我在Coderbyte上做了以下挑战,它不会计算一些更大的数字,所以我假设我的函数很慢。在我的电脑上,计算第1000个质数需要0.045秒。
提示符是:
让函数PrimeMover(num)返回第n个质数。范围从1到10^4。例如:如果num为16,则输出应为53,因为53是第16个质数。
使用下面框中的参数测试功能使用不同的参数测试您的代码。
下面是我的代码:
def PrimeMover(num)
start = Time.now
return 2 if num == 1
return 3 if num == 2
return 5 if num == 3
count
我正在做一个能找到n的程序。素数。例如,通过列出前六个素数:2, 3, 5, 7, 11和13,我们可以看到第6个素数是13。我正在尝试做一个算法,比如,如果我想看到第50个素数,我将把1添加到range()函数的末尾。我现在用这个算法来寻找素数;
cnt = 1
print (2)
for x in range(3,40,2):
div = False
for y in range(2,round(x**0.5)+1):
if x%y == 0:
div = True
if div == False:
print
/*This is a c program I made to print prime numbers between 0 and n,
the loop in this program runs once and terminates.*/
#include <stdio.h>
int main()
{
int n;
printf("Enter the value of n\n");
scanf("%d", &n);
int i, j;
for (i = 0; i <
IsNumberPrime(int num):
if num <= 1: return False
i = 0
end = sqrt(num)
while ArrayOfPrimes[i] <= end:
if (num % ArrayOfPrimes[i]) == 0: return False
i = i + 1
return True
此算法检查给定的数字是否为质数ArrayOfPrimes是包含前1000个质数的数组,如2,3,5,7,11……根据我的方法,由于这个算法将只检查直到给定数字的平方根,所以它应该不会超过sqrt(n)/2,所以我的理解是它应该是sqrt
我正在做项目Euler #7,我写了:
public class Seven {
public static void main(String[] args) {
int i = 0;
int c = 1;
while (c <= 10001) {
if (squareRootIsPrime(i)) {
c++;
}
i++;
}
System.out.println(Math.sqr
这是我用Python语言编写的第一个代码,我完全不明白为什么第5个字符串中的代码必须包含math.sqrt(i))+1而不只是math.sqrt(i),因为否则会将素数平方添加到结果中。
如何解决这个问题是最简单、最自然的方法?提前感谢你们所有人
import math
n=int(input("Print n: "))
prime_list=list(range(2,n))
for i in range(2,n):
for j in range (2, math.ceil(math.sqrt(i))+1):
if i % j == 0:
我写了一个C++程序,打印所有小于n的质数,但程序在执行时总是崩溃。
#include <iostream>
using namespace std;
bool premier(int x) {
int i = 2;
while (i < x) {
if (x % i == 0)
return false;
i++;
}
return true;
}
int main() {
int n;
int i = 0;
cout << "entre
我刚刚开始学习C++,我编写了以下实现的试用除法来查找正整数的素因子。我希望这里的社区能够建议对算法和实现进行修改。我几乎不知道C++的任何特定于语言的特性,所以我确信还有很大的改进空间。
特别是,我希望能够做到以下几点:
使用比int允许的更大的整数。
捕获由命令行参数引起的错误,这些参数不能被解析为ints。
移除车轮的硬编码和第一素数2、3和5的情况.
改进C++的一般风格/使用更多的特性。
#include <iostream>
/*
* Print out p as many times as it divides n.
* Return the quotient
有没有办法得到一行中的质数?我被要求在一行中得到一个数组中的最大质数,这是可能的吗?! Given an array of numbers. Create a function which returns the largest prime number. (NOTE*,
it should be written only 1 line of code). (2) let arr1 = [1,5,7,6,9,10,13,11,12]
function largestPrime(arr) {
// write your code here... }
}
嗨,伙计们,我想知道这段代码是怎么回事:
def is_prime(n):
for i in range(2, int(n**.5 + 1)):
if n % i == 0:
return False
return True
能够在第2行检查质数:for i in range(2, int(n**.5 + 1)):范围不是:range(2, n)?它不应该遍历每个数字,直到n,但排除它吗?这个不是这样做的,但不知何故它起作用了……有没有人能解释一下它的工作原理。
这个程序计算了所有的因数。首先找到所有的素数因子,并将它们的指数加1,然后将它们彼此相乘。但是在for循环中,i在每次迭代中都会递增2,这是不是错了,因为在7之后,它会递增到9,而这不是质数?还是我错了?有谁能解释一下!
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i;
cin>>n;
int factors=1,exponen=0;//exponent stores power of current prime
while(n%2==0)//a se
有什么简单的方法可以让这个小程序更快吗?我已经完成了一个任务,它是正确的,但是太慢了。该程序的目的是打印第n对素数,其中两个素数之间的差是2,给定n。
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
bool isPrime(int number) {
for (int i = 3; i <= number/2; i += 2) {
if (!(number%i)) {
return 0;
}
}
return 1;
}
int fin
我正在试着写一个程序,它可以确定一个整数A,比如A和A+100之间没有质数……不幸的是,凭借我平庸的Python技能,这就是我设法写的全部内容:
for A in range (1,1000000):
if is_prime(n)==False in range (A,A+3):
print(A)
正如你所看到的,我首先尝试让它在只有2个连续复合数字的间隔下工作。我还使用了一个(有效的)函数"is_prime“来确定一个整数是否为质数。
你可以因为我的无能而对我大喊大叫!
我试图创建一个函数,该函数返回给定数字的最小素数:
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
在C++中,我想打印第一个n质数(本例中假设为n=1000)。
为了做到这一点,我从GMP库中找到了。
我假设你是这样使用它的
int n = 2;
for(int i = 0; i < 1000; i++) {
n = mpz_nextprime(n);
cout << n << endl;
}
但是由于mpz_nextprime有两个mpz_t参数,所以不能编译。
在这种情况下,如何使用mpz_nextprime?
打印非质数是因为它只检查'2-10‘中的质数。如何更改代码以检查直到x的所有数字?
N = eval(input("Enter the starting point N: \n"))
M = eval(input("Enter the ending point M: \n"))
n = str(N)
i = 0
for j in range(N, M):
if (n[i] == n[len(n)-1]):
x = N
N = N + 1
if not((x % 2 == 0) or (x %
我需要在C中计算一个大的(BIGNUM)素数的加法逆,所以基本上我需要乘以-1。有没有什么简单的方法可以解决我错过的这个问题?我在文档中看不到任何函数。我所想出来的就是这个,我认为这很丑陋:
//bigprime = my big prime
inverse = BN_new();
one = BN_new();
negOne = BN_new();
BN_one(one); // one = 1
BN_zero(negOne); // set negOne to zero
BN_sub(negOne, negOne, one) // subtract one from zero
BN_mu
我刚开始学习如何编程,我正在试着写一个程序来找出第n个质数。我做到了。但是,对于大的数字,需要很长的时间。有没有办法让它更快?下面是我使用的代码(它非常基础):
def prime_finder(nth1):
s = 1
n = 0
while n < nth1:
s += 1
for x in range(2,s):
if s % x == 0:
break
else:
n += 1
return s
print prime_finder(31337)