素数

C语言I作业05

你离开我真会死。 提交于 2019-12-02 11:04:11
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-2/homework/9830 我在这个课程的目标是 掌握嵌入代码的技巧 这个作业在那个具体方面帮助我实现目标 PTA作业 参考文献 《嵌入式编程规范及注意事项》 1.PTA实验作业 1.1判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。 1.1.1数据处理 数据表达:用了哪些变量,这些变量的值是怎么来的,类型是什么。sh 数据处理:数据用到的表达式和流程结构。 答:1.用了变量 i, s,n。s赋值为0,s, n 和 i 为整型变量。 2.用了求余表达式(%),赋值表达式(=),关系罗辑表达式(==,!=),位运算表达式(&) 3.用了循环结构 4.主调函数main;被调函数fun ;n形参, 整型;s实参,整型。 1.1.2实验代码截图 1.1.3 造测试数据 输入数据 输出数据 说明 12 1 不是0的两位数 123 0 三位数 1.1.4 PTA提交列表及说明 1..编译错误:第三行末尾少打了“ ; " 2..编译错误:”n/=10"打成“n=0" 3..编译错误:不知到错误在哪,瞎改 4..编译错误:不知到错误在哪,瞎改 5..编译错误:重打了一遍,又错了 1

麦森数

岁酱吖の 提交于 2019-12-02 09:20:27
形如2^P−1的素数称为麦森数,这时P一定也是个素数。 但反过来不一定,即如果P是个素数,2^P−1不一定也是素数。 到1998年底,人们已找到了37个麦森数。 最大的一个是P=3021377,它有909526位。 麦森数有许多重要应用,它与完全数密切相关。  任务:从文件中输入P,计算2^P−1的位数和最后500位数字(用十进制高精度数表示)。 输入格式 文件中只包含一个整数P。 输出格式 第一行:十进制高精度数2^P−1的位数。  第2-11行:十进制高精度数2^P−1的最后500位数字。(每行输出50位,共输出10行,不足500位时高位补0)  不必验证2^P−1与P是否为素数。 数据范围 1000<P<3100000 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <cmath> using namespace std; const int N = 510; int a[N], c[N], res[N]; void mul(int a[N], int b[N], int res[N]) { memset(c, 0, N * 4); for (int i = 0; i < 500; i ++ ) for (int j = 0; j < 500;

C语言I作业05

偶尔善良 提交于 2019-12-02 06:49:15
一、本周教学内容&目标 第2章 用C语言编写程序-函数 2.5 生成乘方表与阶乘表。使学生对函数的定义和调用有初步的认识,能模仿编程。 二、本周作业头 问题 答案 这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/2019TA/homework/9833 我在这个课程的目标是 以C为基础,进一步学习java与C++ 这个作业在那个具体方面帮助我实现目标 练习markdown语法以及自主寻找资料的能力 参考文献 百度 三、本周作业 1. PTA作业 1.1 编写函数fun,其功能是:判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。 . 1.1.1 数据处理 -数据表达:提出整形变量sum,i,result,以及定义函数prime,用来解决数字平方能否被5整除,变量i用于进行循环,变量sum用于存储余数来进行进一步的判断是否为素数,result赋值1,用于在接下来的运行中对于此输入数字是否为素数而改变值,以返回此值进行验证是否为素数; -数据处理:以作为被调函数的定义函数的主体,其中包含着判断语句if和循环语句for,来进行程序运行,其中if判断出非素数的可能(素数肯>=2),当if语句判断完毕,就进入for循环来进行赵卒为素数的i,如果非素数则输出返回值0

C语言I博客作业05

一个人想着一个人 提交于 2019-12-02 06:34:41
这个作业属于那个课程 C语言程序设计II 这个作业要求在哪里 C语言I作业05 我在这个课程的目标是 学会自己通过定义简化代码中那些重复出现的代码,减小内存占用空间 这个作业在那个具体方面帮助我实现目标 练习对函数的声明,定义,调用 参考文献 1.PTA实验作业 1.1 (6-1) 判断一个整数的各位数字平方之和能否被5整除 编写函数fun,其功能是:判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。 函数接口定义: int fun(int n ); 其中 n 是用户传入的参数。 函数判断n的各位数字平方之和能否被5整除,能被5整除则返回1,否则返回0。 裁判测试程序样例: #include <stdio.h> int fun( int n ); int main() { int m; scanf("%d", &m); printf("The result is %d\n", fun(m)); return 0; } /* 你的程序将被嵌入在这里 */ 输入样例: 12 输出样例: The result is 1 输入样例: 123 输出样例: The result is 0 1.1.1数据处理 数据表达:在主函数中定义了一个整型变量m,用与代表输入值,在被调用函数中定义了整形变量s,i,n并将s的初始化值设置为0,n代表被调用函数中的输入值

「一本通 6.2 例 1」Prime Distance

一笑奈何 提交于 2019-12-02 03:46:17
题意: 给定两个整数L,R ,求闭区间【L,R】 中相邻两个质数差值最小的数对与差值最大的数对。当存在多个时,输出靠前的素数对。 这道题虽然不难,但是细节很多,虽然给的代码没有用long long ,但是推荐大家尽量用long long 不然会出现一些意想不到的错误。 我们不能吧2^31次方的素数都筛出来,但是查询的范围只有1e6; 1.用筛法求2~ $\sqrt{N} $ 之间的素数,然后筛去【L,R】 中的合数。 2.【L,R】之间的素数两两比较就行了。 #include<bits/stdc++.h> using namespace std; int p[100005],b[1000006]; bool vis[1000006]; void prework(){ for(int i=2;i<=46340;++i){ if(!vis[i]){ p[++p[0]]=i; for(int j=2;j<=46340/i;++j) vis[i*j]=1; } } } int main(){ prework();//筛素数 int l,r; while(~scanf("%d%d",&l,&r)){ memset(vis,0,sizeof(vis)); if(l==1) vis[0]=1;//坑点1,1不是素数 for(int i=1;i<=p[0];++i){ for(int j=ceil

PTA(BasicLevel)-1013 数素数

守給你的承諾、 提交于 2019-12-01 12:52:17
一、问题描述   令 P ​ i ​​ 表示第 i 个素数。现任给两个正整数 M ≤ N ≤ 1 0 ​ 4 ​​,请输出 P ​ M ​​ 到 P ​ N ​​ 的所有素数。   输入格式: 输入在一行中给出 M 和 N,其间以空格分隔。 输出格式: 输出从 P ​ M ​​ 到 P ​ N ​​ 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。 二 、解题代码 import math def sievePrime( n ): """ Implement the seive og Eratosthenes param: n (int) retype: list(int) """ A = [ i for i in range(n+1)] num = int( math.sqrt(n) ) for p in range(2, num+1): if A[p] != 0: # p hasn't been eliminated on previous passes j = p * p while j <= n: # p*p <= n A[j] = 0 # mark element as eliminated j = j + p # 不断剔除p的倍数 L = [ item for item in A if item >= 2 ] return L def get

高效求解素数

本小妞迷上赌 提交于 2019-12-01 10:23:35
给出一个正整数,求出2-正整数之间的所有素数。所谓素数,就是除了1和它本身外不能被任何数整除的数。 素数求解的问题是刚开始接触C语言就接触到的简单问题,也许你会写出下面的代码: int Prime_num(int end_num) // 求解从1-end_num间的所有素数 { int result = 0; for(int i = 2; i < end_num; ++i){ if(IsPrime(i)){ ++result; } } return result; } bool IsPrime(int num) // 判断num是否为素数 { int i; for(i = 2; i < num; ++i){ if(!(num % i)){ return false; } } return true; } 该代码套用两层循环,从2遍历至end_num,对每一个数进行素数判断。时间复杂度O(n^2)。 但是我们发现该算法在判断num是否为素数还有可优化的地方 比如当num = 12 时判断num是否为素数: 12 = 2 * 6 12 = 3 * 4 12 = sqrt(12) * sqrt(12) 12 = 4 * 3 12 = 6 * 2 观察到以sqrt(12)为分界点,前后是相同的乘积式,这样我们只需要在IsPrime()函数中遍历到sqrt(num)就好了呢。 好了

Python集训营45天—Day08 (文件操作)

孤人 提交于 2019-11-30 19:51:04
Python集训营45天—Day08 (文件操作) 1. 文件操作介绍 2904628156 2. 文件的读写 2.1 文本文件 2.2 二进制文件 2.3 JSON文件 3. 文件的定位,重命名和删除 4. 文件夹的相关操作 家应该听说过一句话:“好记性不如烂笔头”。 不仅人的大脑会遗忘事情,计算机也会如此,比如一个程序在运行过程中用了九牛二虎之力终于计算出了结果,试想一下如果不把这些数据存放起来,相比重启电脑之后,数据就会丢失 在Python中实现文件的读写操作其实非常简单,通过Python内置的 open 函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象,接下来就可以对文件进行读写操作了。这里所说的操作模式是指要打开什么样的文件(字符文件还是二进制文件)以及做什么样的操作(读、写还是追加),具体的如下表所示 文件的读写其实主要分几个部分,文本文件、二进制文件(图片音频视频)、JSON文件,操作上大同小异 示例: 要将文本信息写入文件文件也非常简单,在使用 open 函数时指定好文件名并将文件模式设置为 'w' 即可。注意如果需要对文件内容进行追加式写入,应该将模式设置为 'a' 。下面的例子演示了如何将1-9999之间的素数分别写入三个文件中(1-99之间的素数保存在a.txt中,100-999之间的素数保存在b.txt中,1000

Python集训营45天—Day08 (文件操作)

蹲街弑〆低调 提交于 2019-11-30 19:09:15
目录 1. 文件操作介绍 2. 文件的读写 2.1 文本文件 2.2 二进制文件 2.3 JSON文件 3. 文件的定位,重命名和删除 4. 文件夹的相关操作 1. 文件操作介绍 大家应该听说过一句话:“好记性不如烂笔头”。 不仅人的大脑会遗忘事情,计算机也会如此,比如一个程序在运行过程中用了九牛二虎之力终于计算出了结果,试想一下如果不把这些数据存放起来,相比重启电脑之后,数据就会丢失 在Python中实现文件的读写操作其实非常简单,通过Python内置的 open 函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象,接下来就可以对文件进行读写操作了。这里所说的操作模式是指要打开什么样的文件(字符文件还是二进制文件)以及做什么样的操作(读、写还是追加),具体的如下表所示 2. 文件的读写 文件的读写其实主要分几个部分,文本文件、二进制文件(图片音频视频)、JSON文件,操作上大同小异 示例: import time def main(): f = open('F://a.txt', 'r', encoding='utf-8') print(f.read()) f.close() # 一次性读取整个文件的内容 with open("F://a.txt","r",encoding='utf-8') as f: print(f.read()) # 通过for

本原元的定义

冷暖自知 提交于 2019-11-30 11:11:18
1、准备步骤 1)首先理解质数的定义 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 2)了解欧拉函数 对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目,因此一个素数的欧拉函数为其本身的值减一,即当 p 为素数时,φ(p) = p-1。 2、本原元的定义 模 n 下 a 的阶 m = φ(n),m 就是 n 的本原元 3、举例 参考文档: 1)https://wenku.baidu.com/view/48fa2f315022aaea988f0f32.html 来源: https://www.cnblogs.com/GjqDream/p/11581094.html