精华内容
下载资源
问答
  • Python入门学习小记:100以内素数/质数之和

    千次阅读 多人点赞 2019-09-23 22:59:02
    今天做到一题利用for循环求100以内素数之和的题目,发现自己在Python的语法上遇到了问题:这个else是谁的?在此记录以防下次又做错啦。 题目很简单: 100以内素数之和 求100以内所有素数之和并输出。 ‪‬‪‬‪...

    今天做到一题利用for循环求100以内素数之和的题目,发现自己在Python的语法上遇到了问题:这个else是谁的?在此记录以防下次又做错啦。

    题目很简单:
    100以内素数之和
    求100以内所有素数之和并输出。 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

    素数指从大于1,且仅能被1和自己整除的整数。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬
    可以逐一判断100以内每个数是否为素数,然后求和。
    

    一开始我的程序是这样的:

        sum = 0
        for i in range(2,100):#寻找的范围为2-99
            for j in range(2,i):
                if (i%j == 0):
                    break
                else:
                    sum += i
        print(sum)
    

    然而输出时sum却等于66705!
    这明显不对呀!
    为了初步排查我找到的素数是否有问题,修改了一下程序

    sum = 0
    for i in range(2,100):#寻找的范围为2-99
        for j in range(2,i):
            if (i%j == 0):
                break
            else:
                print(i)
                #sum += i
    #print(sum)
    

    果然输出的素数是有问题的。查看结果发现找到的素数出现了多次输出甚至输出非素数的情况,加起来当然比正确答案大的多啦。

    可是为什么会出现这样的错误呢?

    复习一下:
    break语句:用于跳出最内层的for或while循环,即一个break语句只有能力跳出当前层次的一个循环。跳出这个循环后从这个循环后面的代码继续执行。
    if-else二分支:如果满足if后的条件,就执行冒号后面的语句;否则执行else冒号后面的语句。二分支结构用于区分对if后条件的两种可能,满足条件即True,不满足条件即False,以此分别形成执行路径。

    所以,在上面这个程序中,双层for嵌套后利用了一个if-else二分支。如果满足条件:i对j取余数为零(i<j,排除了i=j的情况),说明i除了1和它本身之外还能被其他整数整除,那么这个i并不是一个素数,利用break跳出循环继续寻找素数;如果不满足这个条件,就说明找到了一个素数i,执行else冒号后面的语句打印这个素数,并返回对j的for循环。然而对j的循环是从2循环到i的前一个数,如果i是一个素数,不论j是多少都除不尽。因此,每遍历一个j→除不尽→打印i。除不尽几次就打印了几次i,使得多次输出该素数造成了输出不准确。甚至对于某个非素数i,如果与目前遍历得到的j除不尽,也会一直打印i直到i与j能够除得尽跳出对j的循环。

    再复习一下:
    for in-else语句:遍历在in后面的遍历结构,当for循环正常遍历了所有内容或由于条件不成立而结束循环,且没有因为break或return而跳出循环时,才执行else后面的语句。

    这里的“else”是for的,还是if的?显然,应该是for的。只有遍历全部j后依然除不尽的才能够认为i为素数并输出。写程序时太粗心写错了else的位置;对于Python语法的不熟练没能透彻的结合题目的意思。意识到问题所在,修改程序

    sum = 0
    for i in range(2,100):
        for j in range(2,i):
            if (i%j == 0):
                break
        else:
            sum += i
    print(sum)
    

    输出sum=1060,是正确答案!

    展开全文
  • 编程求解1到n之间所有素数之和,输入只有一个n,输出为一个数。
  • c语言 统计素数之和

    千次阅读 2020-10-07 16:52:14
    c语言 统计素数之和 #include<stdio.h> int main() { int m, n; printf("您想求哪两个数之间的素数之和,请依次输入它们:"); scanf_s("%d %d", &m, &n); int i; int cnt = 0; int sum = 0; ...

    c语言 统计素数之和

    #include<stdio.h>
    int main()
    {
    	int m, n;
    	printf("您想求哪两个数之间的素数之和,请依次输入它们:");
    	scanf_s("%d %d", &m, &n);
    	int i;
    	int cnt = 0;
    	int sum = 0;
    
    	if (m==1)
    	{
    		m = 2;
    	}
    	for ( i = m; i <= n; i++)
    	{
    		int isPrime = 1;
    		int k;
    		for ( k = 2; k <=i-1; k++)
    		{
    			if (i%k==0)
    			{
    				isPrime = 0;
    				break;
    			}
    		}
    		if (isPrime)
    		{
    			cnt++;
    			sum += i;
    		}
    	}
    	printf("%d %d\n", cnt, sum);
    	return 0;
    }
    

    在这里插入图片描述

    展开全文
  • 求前n个质数之和

    2020-09-02 11:19:24
    求前n个质数之和 前段时间参加一个考试,要求使用php写出求前n个质数的和的算法。 代码如下 <?php /** * @param $n //这个表示几个数字的质数的和,即题目中的n * @param $increase //循环次数,起始值是2,莫...

    php求前n个质数之和@TOC

    求前n个质数之和

    前段时间参加一个考试,要求使用php写出求前n个质数的和的算法。

    代码如下

    <?php
    /**
     * @param $n  //这个表示几个数字的质数的和,即题目中的n
     * @param $increase //循环次数,起始值是2,莫修改
     * @param $count //循环质数的次数,起始值是0,莫修改
     * @param $add_num  //总数,起始值是0,莫修改
     * @return mixed
     * author fengyuan
     * date 2020/8/28 1:53
     */
     function calculate($n,$increase=2,$count=1,$add_num=0){
    
            $flag_in=0;//标识能被符合的条件 1和它本身
            $flag_out=1; //标识不符合的条件  除了1和其他数
    
                for ($i=1;$i<=$increase;$i++){
                    if($i!=1&&$i!=$increase){
                        //满足1和它本身可以被整除的情况下,我们的flag_out会一直满足true的情况
                        $result=$increase%$i;
                        if(!$result){
                            $flag_out=0;
                        }
                    }else{
                        //满足除了1和它本身都不能够被整除的情况下,我们的flag_in一直都是0
                        $result=$increase%$i;
                        if($result){
                            $flag_in=1;
                        }
                    }
                }
    
            if($flag_out&&!$flag_in){
                //是质数的情况
                if($n==$count){
                    //当所需要的质数的个数满足了我们,我们则跳出该递归
                    $add_num=$add_num+$increase;
                    echo $add_num;
                    die();
                }else{
                    //不满足的情况,我们继续进行递归,直到满足情况为止
                    $add_num=$add_num+$increase;
                    $count++;
                    $increase++;
                    calculate($n,$increase,$count,$add_num);
                }
            }else{
                //不是质数的情况
                $increase++;
                calculate($n,$increase,$count,$add_num);
            }
    
    
        }
    
        //调用函数执行
        calculate(5);
    
    
    展开全文
  • public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 50; i++) { for (int j = 2; j <= i; j++) { if(i % j == 0 && i != j){ //不是素数 break;
    public static void main(String[] args) {
    
            int sum = 0;
    
    for (int i = 1; i <= 50; i++) {
                for (int j = 2; j <= i; j++) {
                    if(i % j == 0 && i != j){
                        //不是素数
                        break;
                    }
                    if(i == j){
                        //是素数
                        System.out.println(i);
                        sum += i;
                    }
                }
            }
            System.out.println("1~50之间全部的素数和为:"+sum);
        }
    
    展开全文
  • 使用c语言求1-100以内素数之和

    万次阅读 多人点赞 2018-10-14 22:32:57
    编译器使用的loadrunner: 不使用函数: ... //是否为素数 for (i = 2; i &lt;= 100; i++) { flag = 1; for (j = 2; j &lt;= i - 1; j++) { if (i % j == 0) { flag = 0; ...
  • 100以内素数之和

    千次阅读 2019-07-06 00:33:15
    求100以内所有素数之和并输出。 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪...
  • 利用python求100以内素数之和

    千次阅读 2020-10-04 19:22:18
    利用python求100以内素数之和 python中简单函数的应用 #Prime def is_prime(n): #定义一个判断素数的函数 for i in range(2,n): #判断是否能被除1和他本身之外的整数整除 if n%i == 0: return False #如果能返回...
  • 四个素数之和问题

    2019-07-28 21:04:53
    但是每个整数能表示成四个素数之和吗?希望你能帮我们高效地解决这一问题。在这个问题中,素数的定义为“一个素数是指一个正整数,且该正整数有且只有两个不同的因子”。例如37是一个素数,因为它只有两个不同的因子...
  • 将大于2的某一个数分解成两个素数之和 【面试题】输入一个大于2的偶数n,将n分解成为两个素数之和,有几对就输出几对。(注意 :1 不是素数) #include <stdio.h> /*子算法,判断整数n是否是素数,是素数则...
  • 素数之和

    千次阅读 2018-08-15 14:43:12
    素数之和。 分析: ①前面做过求 1-10000的所有素数,只需要将每个输出放在一个数组里面然后输出就可以了。 ②利用筛法求解。 第一种代码: #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;...
  • 如何用python编辑一个偶数总能表示为两个素数之和 如何用python编辑 题目:一个偶数总能表示为两个素数之和 **分析题目:**一个偶数总能表示为两个素数之和 简而言之就是 偶数=素数+素数 首先先定义一个素数的函数,...
  • 计算1~100000范围内质数之和

    千次阅读 2018-08-14 22:05:16
    质数 质数(prime number)又称素数,在大于1的自然数中,除了1和它...计算1~100000范围内质数之和 C++代码 // Summary: 计算1-100000范围内质数之和 // Author: Amusi // Date: 2018-08-14 // Reference: http...
  • 将一个数拆分成多个素数之和

    千次阅读 2020-02-28 13:30:24
    + 1))]: return False return True def equal_prime(n): '''n拆分成素数之和''' plist = [i for i in range(n + 1) if judge_prime(i)] DFS(n, 0, 0, plist, S=set()) def DFS(n, index=0, sum_num=0, primes=[], L=...
  • 求1000以内最大的20个素数之和

    千次阅读 2020-04-09 17:27:28
    #include<stdio.h> void main() { int x,i,n=0,s=0; for(x=1000;x>1;x--) { for(i=2;i<x;i++) { if(x%i==0) ... if(i==x)//为素数 { printf("%d\t",x); i=2; n++; s...
  • 将大于2的偶数分解成两个素数之和

    千次阅读 2018-07-27 00:01:43
    题目:输入一个大于2的偶数N,将N分解为两个素数之和。 #include &lt;stdio.h&gt; /*子算法,判断整数n是否是素数,是素数则返回1,不是则返回0*/ int isPrime(int n) {  int i;  for(i=2;i&lt;n;i++...
  • // 找出1-100的质数之和 for (int i = 2; i <= 100; i++) { // i值为2,质数为除去1和自身整除的数 j初始值为2去除偶数 for (k = 2; k < i; k++) { //内层循环遍历查询i的整除数 if (i % k == 0)...
  • Python入门练习:100以内素数之和

    万次阅读 2019-04-02 13:29:23
    求100以内所有素数之和并输出。 ‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬ 素数指从...
  • int SumOfPrime(int n) { int i, k, sum = 0; for (i = 2; i < n; i++) { bool prime = true; for (k = 2; k <= i / 2; k++) { if (i % k == 0) ...
  • 问题描述:偶数总能表示为两个素数之和,使用C语言编程实现。 程序源码: #include "stdio.h" #include "math.h" void main() { int a,b,c,d; scanf("%d",&amp;a); for(b=3;b...
  • 一个偶数拆分为两素数之和

    千次阅读 2019-04-03 03:10:07
    求偶数拆分成素数和的所有情况
  • 一个数可以用有多少种连续素数之和表示! 文章目录1. 题目描述2. 算法实现 1. 题目描述 可以由一个或多个连续质数(素数)表示一些正整数。 一个给定的正整数有多少这类陈述?例如,整数53有两种表示方法5+7+11+13+...
  • 验证哥德巴赫猜想:一个大偶数可以分解为两个素数之和。分解500~1000之间的大偶数。
  • * 输出描述:两个质数之和 * 输入示例:10 * 输出示例:10=3+7 代码实现 /************************************************* * 题目描述:数字分解,将一个数字分解成两个质数相加 * 输入描述:给定数字 * 输出...
  • C语言之求100之内的所有素数之和

    千次阅读 2018-06-24 23:19:38
    Action(){ //试写一函数,求100以内所有素数之和 continueTest4(); return 0;}void continueTest4(){ int i,j; int sum=0; for(i=2;i&lt;=100;i++){ int t=1; for(j=2;j&lt;i;j++){ if(i%j==0){ t=0...
  • python 输入任意数值,求素数(或质数之和素数个数和素数清单 num = int(input('输入任意的数值num,求2-num之间所有的素数:')) list_sum=0 list_num=[] for i in range(2,num): for j in range(2,i): if i%j...
  • var sum = 0; //sum求和 为76127 for (let i = 2; i <= 1000; i++) { for (let j = 2; j <= i; j++) { if (i % j == 0) { if (j < i) break; else sum += i; } } ...
  • 将一个偶数分解成两个素数之和

    千次阅读 2019-07-23 11:36:45
    将一个偶数分解成两个素数之和 解这道题我们只需要关注后半句话:两个素数之和 两个素数之和?该怎么解答? 有的朋友可能想到了套两层循环直接让电脑来判断 但在这里我们可以直接用n减去其中的一个数,得到另一个数 ...
  • (2)判断i是否为素数,若是,执行步骤(3);若不是,执行步骤(5)。 (3)判断x-i是否为素数,若是,执行步骤(4);若不是,执行步骤(5)。 (4)输出结果,返回调用函数。 (5)使i增1。 (6)重复执行步骤(2...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 220,718
精华内容 88,287
关键字:

素数之和