c#如何在范围内找到数字位置
例如,我找到了从2到100的素数。我需要知道哪个号码在位置上,比如说24号。你能帮我找到最简单的方法吗c#如何在范围内找到数字位置,c#,numbers,position,range,C#,Numbers,Position,Range,例如,我找到了从2到100的素数。我需要知道哪个号码在位置上,比如说24号。你能帮我找到最简单的方法吗 using System; using System.Collections.Generic; class SomePrimesRange { static void Main() { for (int i = 2; i < 260; i++) { if (i % 2 == 0) {
using System;
using System.Collections.Generic;
class SomePrimesRange
{
static void Main()
{
for (int i = 2; i < 260; i++)
{
if (i % 2 == 0)
{
}
else if (i % i == 0)
{
Console.WriteLine(i);
}
List<int> numbers = new List<int>(260);
numbers.Add(i);
foreach (int a in numbers)
{
Console.WriteLine("Enter a position:");
int position = int.Parse(Console.ReadLine());
Console.WriteLine(position);
}
}
}
}
使用系统;
使用System.Collections.Generic;
类SomePrimesRange
{
静态void Main()
{
对于(int i=2;i<260;i++)
{
如果(i%2==0)
{
}
else if(i%i==0)
{
控制台写入线(i);
}
列表编号=新列表(260);
增加(i);
foreach(整数为int a)
{
Console.WriteLine(“输入位置:”);
int position=int.Parse(Console.ReadLine());
控制台写入线(位置);
}
}
}
}
首先,我假设您不想要一个简单的解决方案,因为这将是暴力,并将导致缓慢的未优化代码
我不打算为您编写代码,但我将解释背后的理论,并为您提供一些伪代码
func findPrimeNumber(int n){
primeArray = []
int number = 1
while(primeArray.length < n){
if(isNumberPrime(number) == true){
primeArray.append(number, primeArray)
}
number++
}
}
func isNumberPrime(int number, int[] primeArray){
var minCheck = Math.roundUp(Math.sqrt(number))
foreach prime in primeArray{
if(prime <= minCheck && prime > 1){
if(number % prime != 0){
//keep checking numbers
}else{
return false
}
}else{
break; //no more checking is necessary
}
return true;
}
}
func findPrimeNumber(int n){
primeArray=[]
整数=1
while(primeArray.length
我在上面的伪代码中实现了两个基本概念(您可能需要增强边缘情况的代码)
运行一个简单地通过检查2…n-1来确定一个数字是否为素数的算法是无效的,也是浪费的
如果你需要更多的帮助,请告诉我。祝你好运,有趣的小问题。做一个foreach循环。将数字添加到列表中。然后获取数组中的第24项。项[23](不是项[24],因为数组从0开始) 这是用于此的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace PrimeNumberHelp
{
class Program
{
private static int Max = 100;
static void Main(string[] args)
{
List<int> Primes = new List<int>();
int current = 0;
while (current <= 100)
{
if (IsPrime(current))
Primes.Add(current);
current++;
}
Console.WriteLine(Primes[23]);
Console.ReadKey();
}
private static bool IsPrime(int number)
{
if (number == 1)
return false;
if (number == 2)
return true;
if (number % 2 == 0)
return false;
for (int i = 3; i * i <= number; i += 2)
{
if (number % i == 0)
return false;
}
return true;
}
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
名称空间PrimeNumberHelp
{
班级计划
{
私有静态int Max=100;
静态void Main(字符串[]参数)
{
列表素数=新列表();
int电流=0;
虽然(当前你能帮我找到最简单的方法吗?
当然,只要展示你的艰难之路,我们就可以开始工作。嗨!我已经尝试过这样做:[这是我迄今为止的艰难之路]:(我做得非常错误。你能帮我一点吗?我是C#的新手,我想这样做可以做到:[但没有:(@TsenkoAleksiev)这有帮助吗?如果有,请选择这个作为答案。@John Thompson这有帮助吗?