【c#】求1到n之间的所有素数之和.
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【c#】求1到n之间的所有素数之和.相关的知识,希望对你有一定的参考价值。
给你一个超高效的代码,你试一下能看懂不!List<int> GetAllPrimeNumber(int num)
if(num<2) throw new Exception("必须是大于1的整数");
List<int> primenumber = new List<int>();
primenumber.Add(2);
if(num<3) return primenumber;
for(int s =3;s<=num;s+=2)
int k = (int)Math.Sqrt(s);
//取出小于S开方的最大整数 for(int i =0;i<primenumber.Count;i++)
if(primenumber[i]>k)
//是质数的情况
primenumber.Add(s);
break;
if(s%primenumber[i]==0)
break;
return primenumber;
该函数是求1....N中所有关素数。
List<int> result = GetAllPrimeNumber(num);//求出所有的素数
int temp = result.Sum();//利用lambad表达式计算所有素数的和。
当然这个是分开写的,其实对于上式你完全可以将素数内再定义一个int,跟在List.add后计算其和的。效率更高。 参考技术A 静态无效的主要(字串[] args)
而(真)
Console.Write(“请输入n的值:”);
STR = Convert.ToInt32(Console.ReadLine());
PMB PB =新的PMB();
(pb.pumb(STR))
COUT = COUT +的海峡;
了Console.Writeline的(“0是一个素数”,STR);
其他
了Console.Writeline(“ 0是不是素数“,STR);
的私有类PMB
公共布尔PUMB (int类型)
布尔BL =真;
INT I;
(= 2 <= S / 2; + +)
如果(%I == 0)
BL = FALSE;
突破;
( > 1),
返回BL;
返回FALSE;
--------------- ---------------静态无效的主要(1到100的素数----------------------- <BR /字串[] args)
诠释计数= 0;
(INT I = 2; <= 100; + +)
BOOL BL =真;
(J = 2; <= I / 2; J + +)
如果(%J == 0)
BR /> BL = FALSE;
突破;
(BL)
,
计数=计数+ I;
了Console.Writeline(I);
了Console.Writeline(计数);
1.求100-300间的所有素数,按每行10个数输出,并求出输出怎么做?
参考技术A Java实现:public class PrimeNumbers
public static void main(String[] args)
// 枚举100-300之间的数字
for (int num = 100; num <= 300; num++)
// 判断是否是素数
boolean isPrime = true;
for (int i = 2; i < num; i++)
if (num % i == 0)
isPrime = false;
break;
if (isPrime)
System.out.print(num + " ");
// 每输出10个数字换行
if (num % 10 == 0)
System.out.println();
PHP实现:
<?php
// 枚举100-300之间的数字
for ($num = 100; $num <= 300; $num++)
// 判断是否是素数
$isPrime = true;
for ($i = 2; $i < $num; $i++)
if ($num % $i == 0)
$isPrime = false;
break;
if ($isPrime)
echo $num . " ";
// 每输出10个数字换行
if ($num % 10 == 0)
echo "<br>";
?>
C语言:
#include <stdio.h>
int main()
// 枚举100-300之间的数字
for (int num = 100; num <= 300; num++)
// 判断是否是素数
int isPrime = 1;
for (int i = 2; i < num; i++)
if (num % i == 0)
isPrime = 0;
break;
if (isPrime)
printf("%d ", num);
// 每输出10个数字换行
if (num % 10 == 0)
printf("\n");
return 0;
Python实现:
# 枚举100-300之间的数字
for num in range(100, 301):
# 判断是否是素数
for i in range(2, num):
if num % i == 0:
break
else:
print(num, end=" ")
# 每输出10个数字换行
if num % 10 == 0:
print() 参考技术B Java实现:
public class PrimeNumbers
public static void main(String[] args)
// 枚举100-300之间的数字
以上是关于【c#】求1到n之间的所有素数之和.的主要内容,如果未能解决你的问题,请参考以下文章