质数乘积(大数乘法+埃氏筛法)
质数乘积
题目描述
TWQ每天疯狂的刷题,今天又刷到一道水题,于是赶紧来拿一血吧,给你一个正整数n,求小于n的数中所有质数的乘积,输入有多组测试用例,0为结束标志,所有质数的乘积初始值为0。
输入
正整数n(n<=10000)
输出
小于n的质数的乘积。
样例输入
5
0
样例输出
6
提示
大数乘法
#include<stdio.h>
#include<math.h>
int a[1000000];
int main()
{int i,j,f=0,k,l1,l2,x,y,z,n,l,b[10010];//标记10000以内的素数for(i=0;i<=10000;i++)b[i]=1;//先把所有数标位1for(i=2;i<=100;i++)//前100的质数就能筛出来所有质数了{if(b[i])//如果b[i]==1则就是素数{for(j=i+i;j<=10000;j=j+i)//埃氏筛法,所有是i的倍数全部不是素数,标记为0b[j]=0;//标记所有不是质数的数}}while(scanf("%d",&n)!=EOF){if(n<=0)break;for(i=1;i<1000000;i++)a[i]=0;//把数组初始化为0方便后面计算因为0*任何数都是0a[0]=1;//大数乘法首位为1去乘每一位if(n==1||n==2)//特判printf("0\n");else{for(i=2;i<n;i++)//遍历n以内的素数{if(b[i])//i是素数{y=0;for(j=0;j<7000;j++)//遍历7000简单粗暴{x=a[j]*i+y;//每一位*ia[j]=x%10;//保留个位存入数组ay=x/10;//计算进位}}}for(i=5000;i>=0;i--)//首先遍历找出第一个不为0的数即是最高位if(a[i]!=0)break;for(j=i;j>=0;j--)//循环遍历printf("%d",a[j]);printf("\n");}}return 0;
}
质数乘积(大数乘法+埃氏筛法)相关推荐
- 埃氏筛法求质数(例如:200以内的质数)
传统求质数 全部遍历,是否有因数可以整除 private boolean isPrime(int n){if(n < 2){return false;}if(n == 2 || n == 3 | ...
- 埃拉托色尼筛选法巧解质数问题(埃氏筛法求解素数问题)
背景: 素数(即质数)问题是老问题了,程序员面试问题,大小比赛的热门题. 比如 最简单的判断素数问题,或者计算素数的个数,等等. 简单的判断素数函数: 素数的定义:指在大于1的整数中,只能被1和它本身 ...
- 筛质数—(朴素筛法、埃氏筛法、欧拉筛法(线性筛法))
筛质数时首先要了解质数的定理:1~n中有 个质数 下面再来看具体算法: 1.朴素筛法: 直接把2~n-1中质数和合数的倍数都筛一遍,其代码如下所示: int primes[N],cnt=0; boo ...
- 找素数(质数):线性筛法和埃氏筛法
先看这道题 洛谷P1217回文质数 对于这道题,普通的暴力模拟会TLE,所以得寻求改进.这里我学会了两种方法: 第一种:线性筛法 这种算法的核心思想就是:任何一个合数都可以由质数相乘得到 下面就是核心 ...
- 【算法学习】找素数的几种算法: 简单穷举, 埃氏筛法, 欧氏筛法, 从O(n2)到O(n)
文章简介 本文记录寻找素数的几种算法, 本文中的O()没有指明默认表示时间复杂度 代码使用Java 目录 文章简介 正文 穷举计数法(判断O(n)) 优化: 布尔+break(判断 小于O(n)) 优 ...
- java 埃氏筛法_筛法
素数与最大公因子2021-02-12 17:32:04 素数 定义: 素数是大于 \(1\) 的正整数, 并且除了 \(1\) 和它本身外不能被其他正整数整除. 素数的数量: 不超过 \(N\) 的素 ...
- 【中国大学MOOC】java程序设计-week3-用“埃氏筛法”求2~100以内的素数
1.题目 用"埃氏筛法"求2-100以内的素数.2-100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,--依此类推,最后剩下的就是素数. 要求使用数组及增强的for语 ...
- 线性筛法求素数c语言,[算法]素数筛法(埃氏筛法线性筛法)
一.素数筛的定义 给定一个整数n,求出[1,n]之间的所有质数(素数),这样的问题为素数筛(素数的筛选问题). 二.埃氏筛法(Eratosthenes筛法) 埃氏筛法又叫做Eratosthenes筛法 ...
- P7960 [NOIP2021] 报数 埃氏筛法
在世界杯小组赛的前2分钟AC了了这题,然后赶紧趁热写了篇题解 直接上题目 等会儿 这篇文章写了2678字 先赞后看好习惯 题目描述 报数游戏是一个广为流传的休闲小游戏.参加游戏的每个人要按一定顺序轮流 ...
最新文章
- 缺陷漏测分析:测试过程改进
- ubuntu10.10各种服务器搭建
- ping 命令使用代理_网络检测知识篇:ping命令使用知识,你知道几点?
- SQL Server 数据库多表查询
- mac共享文件夹 linux,一文搞定 Linux,Mac,Windows 的 NFS 网络文件共享服务部署
- kmo检验和bartlett球形检验_互助问答59期:多期DID平行趋势检验以及因子分析累计方差贡献率...
- GlusterFS 部署和应用
- Apache下域名虚拟主机在个人主页目录上实现过程
- SpringBoot整合Quartz
- web页面和ssh登陆到防火墙
- SpringDataJPA之Specification复杂查询
- 定时删除虚拟服务器快照,ESXi6.0 设置自动删除快照脚本及计划任务
- Godot 导出项目文件错误解决办法
- Notification通知全文 7.0 and 8.0通知 ,横幅 ,显示,抖动,响铃
- vue created钩子使用后台数据赋值给data里的变量,报错‘undefined’
- 刚刚下载的eclipse打不开?一点击就报错
- 佳能eosr控制环能否计算机控制,EOS R有哪些隐藏功能
- Ubuntu 20 core dumped(核心已转储)问题分析
- Java在c盘fld目录下的文件名_VB操作文件夹的几个方法
- 逆水寒捏脸服务器维护,《逆水寒》2019年3月28日更新公告