c选取出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293).C#选取出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如
选取出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293).计算并输出上述这些素数的个数CN以及这些素数值的和SUM.请编写函数实现程序要求.C# 实现
要实现代码
最快的代码是先进行判素处理.
取得1000以内的所有素数.
List{
if(num<2) throw new Exception("必须是大于1的整数");
List
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
if(primenumber[i]>k)
{
//是质数的情况
primenumber.Add(s);
break;
}
if(s%primenumber[i]==0)
break;
}
}
return primenumber;
}
该方法可以获得num内的所有素数.调用方法是
List<int> allPrimeNum = GetAllPrimeNumber(1000);
即可获得1000以内的所有素数.目前这种方法绝对速度够快. 运行次数绝对最少.实现原因是将2,3存入list中,从4开始,依次用list中小于等于当前开方数的素数去除当前数,若均除不尽,则加入链表.以100为例,不需要从2到10,也不需要从2,3到9的质数,只须10以前的素数即可.原理是,因为质数为2,所以不须要再使用4,6,8,10等数字去试,若其中任意一个能除尽,那么2一定能除尽,3也同样,其实判素只需要用小于其开方的素数去试就可知道了!虽然在100以前讨不到什么便宜,但是到1000以后却能讨到大便宜.
接回你的问题,你的问题是求个数与和,将所有素数都求出来了,求个数与和还难么?使用lamabad表达式即可!
IENumerable<int> result = allPrimeNum.Where(_Item => _Item>100 && _Item/100 == (_Item%10+(_Item%100)/10)%10);
该式会求出你所以要求的素数,不要说和与个数,它可以一个个地打印出来!
Item>100,表示在allPrimeNum中大于100的,_Item/100 == (_Item%10+(_Item%100)/10)%10相信你能看懂,它是说_item/100表示百位数._item%10表示的是个位数.而(_item%100)/10是十位数,也可以写作(_item/10)%10).个数与10位相加后与10取模,所以后一个条件就是你表示的个位与十位相加取模与百位相同的条件.
那么你要的结果就是:
CN = result.Count();
SUM = result.Sum();
,关于除杂的问题,有一种物质,里面有杂质,,选用一种试剂,怎么确定选用什么试剂去除杂呢?选定了试剂 2020-05-14 …
判断 1.能被9整除的数一定能被3整除,能被3整除的数也一定能被9整除()选择1.如果A除以B=8 2020-05-17 …
任何数除0都得0,1、任何数除0都得02、任何数除以0都得0哪个正确?为什么? 2020-06-12 …
4.8减去0.7除0.14的商,所得的差再除以1.5,得多少?大哥大姐们、、帮帮俺、、俺着急用、、 2020-07-03 …
c选取出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如29 2020-07-19 …
选取出100以上,1000以内所有个位数字与十位数字之和被10除所得余数恰好是百位数字的选取出10 2020-07-19 …
除法法则:两数相除,同号得正,异号得负,并把绝对值相除.0除以任何一个不等于0的数,都得0.1.除 2020-07-30 …
我知道“零除零得任何数”.那么“零除任何数得无穷大”对吗?这个被大家公认没有意义的除数0,我怎么觉得 2020-12-10 …
下列四位同学的说法中,正确的是()A.墨墨说:0除以任何一个不等于0的数都得0B.亮亮说:任何数除以 2021-01-07 …
0除以任何一个不为零的数,得0,0除以0得任何一个自然数,0除以0得多少呢? 2021-02-03 …