数论
YikNjy
难留少年时,总有少年来。
展开
-
acwing 198反素数
acwing 198 反素数原创 2022-11-08 21:05:09 · 271 阅读 · 0 评论 -
组合数的计算
本篇博客来自南昌理工学院acm集训队成员yyj组合数1.定义组合数:从 n 个不同元素中每次取出 m 个不同元素 ,不管其顺序合成一组,称为从 n 个元素中不重复地选取 m 个元素的一个组合。所有这样的组合的种数称为组合数。2.性质与描述2.1写法在线性写法中被写作C(n,m)。组合数的计算公式为:2.2性质性质1.从n个不同元素中取出m个元素的组合数 == 从n个不同元素中取出 (n-m) 个元素的组合数;理解:这个性质很容易理解,例如C(9,2)=C(9,7),即从9个元素里选原创 2021-07-30 17:31:16 · 5333 阅读 · 0 评论 -
求两个正整数的最大公约数和最小公倍数。
求两个正整数的最大公约数和最小公倍数。#include<stdio.h>main() { int p,r,n,m,temp; printf("请输入两个正整数,用逗号隔开:"); scanf("%d,%d",&n,&m); if(n<m) { temp=n; n=m; m=temp; } p=n*m; while(m!=0) { r=n%m; .原创 2021-04-15 19:39:20 · 330 阅读 · 0 评论 -
求解一元二次方程 ax2+bx+c=0 的跟(a 不等于 0),a,b,c 均为实数,其值由键盘输入。
31.求解一元二次方程 ax2+bx+c=0 的跟(a 不等于 0),a,b,c 均为实数,其值由键盘输入。#include<math.h>#include<stdio.h>#include<conio.h>main() { double a,b,c; double s,x1,x2; printf("please enter a,b,c:\n"); scanf("%lf%lf%lf",&a,&b,&c);原创 2021-04-15 19:41:05 · 3510 阅读 · 0 评论 -
求不超过 1000 的回文素数
#include<stdio.h>#include<math.h>void prime_number(int n) { //判断整数 n 是否为素数 int i,m,t,s=1; //s 是一个标志,s=1 表示是素数,s=0 表示不是素 数 m=sqrt(n); for(i=2; i<=m; i++) { t=n%i; if(t==0) s=0; } if(s==1)原创 2021-04-15 19:43:29 · 575 阅读 · 0 评论 -
输入自然数 n,将 n 分解为质因子连乘的形式输出。
#include <stdio.h>#include <math.h>int prime_number(int n) { //判断整数 n 是否为素数 int i,m,t,s=1; //s 是一个标志,s=1 表示是素数,s=0 表示不是素数 m=sqrt(n); for(i=2; i<=m; i++) { t=n%i; if(t==0) s=0; } return s;}.原创 2021-04-15 19:46:04 · 2376 阅读 · 0 评论 -
求两个正整数的最大公约数 (用函数调用实现)。
求两个正整数的最大公约数 (用函数调用实现)。#include<stdio.h>int gcd(int m,int n) { if(m%n == 0) return n; else return gcd(n,m%n);}int main() { int m,n,t; scanf("%d%d",&m,&n); if(m<n) { t = m; m = n; .原创 2021-04-15 19:49:50 · 9532 阅读 · 0 评论 -
素数的最简模板
最简素数的模板如下:int sx(int a) { for(int i=2; i<=sqrt(a); i++) if(a%i==0) return 0; return 1;}代码是本人用于复习和巩固时的笔记,勿喷,如果有更好的模板请打在评论区。谢谢原创 2021-04-19 20:22:46 · 83 阅读 · 0 评论 -
欧几里得算法
辗转相除法欧几里德算法又称辗转相除法,是指用于计算两个非负整数a,b的最大公约数。应用领域有数学和计算机两个方面。计算公式gcd(a,b) = gcd(b,a mod b)。欧几里德算法和扩展欧几里德算法可使用多种编程语言实现。...原创 2021-04-25 19:47:21 · 92 阅读 · 0 评论 -
数论之求质数的几种方法
1.朴素求质数法:代码如下:int a,cnt,pr[N];bool st[N];void zs(int n){ for(int i=2; i<=n; i++) { if(!st[i]) { pr[cnt++]=i; //如果没有被筛,i为质数,那么直接cnt++; } for(int j=i+i; j<=n; j+=i)st[i]=true; //原创 2021-05-17 17:36:30 · 629 阅读 · 0 评论