【ACM】杭电OJ 4548 美素数(二次打表)

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

二次打表,第一次是标记哪些是素数,哪些不是。

第二次是前n个数中   “本身是素数  &&  各个位上的和是素数  ” 的个数

TLE: 

#include <iostream>
#include <cstdio>
using namespace std;

int fun1(int x)
{
	int sum=0;
	while(x>0)
	{
		sum+=x%10;
		x/=10;
	}
	return sum;
}

int isprime(int num)
{
	if(num==1)
		return 0;
	if(num==3 || num==2)
		return 1;
	if(num%6!=1 && num%6!=5)
		return 0;
	int t=sqrt((double)num);
	for(int i=5;i<=t;i+=6)
	{
		if(num%i==0 || num%(i+2)==0)
			return 0;
	}
	return 1;
}


int main ()
{
	int T,p,count;
	int i,L,R,j;
	scanf("%d",&T);
	for(i=1;i<=T;i++)
	{
		count=0;
		scanf("%d%d",&L,&R);
		for(j=L;j<=R;j++)
		{
			p=fun1(j);
			if(isprime(j) && isprime(p))
			{
				count++;
			}
		}
		printf("Case #%d: %d\n",i,count);
	}
	return 0;
}

 AC:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

const int maxn = 1000000+10;
int a[maxn];
int b[maxn];

int fun1(int x)
{
	int sum=0;
	while(x)
	{
		sum+=x%10;
		x/=10;
	}
	return sum;
}

void fun2()
{
	int i,j;
	memset(a,1,sizeof(a));
	a[0]=0;
	a[1]=0;
	for(i=2;i<maxn;i++)
	{
		if(!a[i])	continue;
		for(j=i*2;j<maxn;j+=i)
		{
			a[j]=0;
		}
	}
	return ;
}

int main ()
{
	int i,j,p,T,R,L;
	fun2();
	memset(b,0,sizeof(b));
	for(i=1;i<maxn;i++)
	{
		if(a[i] && a[fun1(i)])
		{
			b[i]=b[i-1]+1;
		}
		else
		{
			b[i]=b[i-1];
		}
	}
	scanf("%d",&T);
	for(p=1;p<=T;p++)
	{
		scanf("%d%d",&L,&R);
		printf("Case #%d: %d\n",p,b[R]-b[L-1]);
	}
	return 0;
}

 

ACM之HDU————相遇周期(真·打表素数筛选)) 相遇周期 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 3136 Accepted Submission(s): 1465   Problem Description 2007 阅读详情

相关推荐

【GAN实战】基于pytorch-CycleGAN与pix2pix的自定义数据集训练全攻略

本文详细解析了基于PyTorch的CycleGAN与pix2pix模型在自定义数据集上的完整训练流程。核心在于根据数据是否成对来正确选择模型:pix2pix适用于严格配对的“孪生”数据,而CycleGAN则擅长处理非配对的“散装”数据集。文章从数据准备、配置训练到测试应用,提供了全链路实战指南与关键参数调优心得,帮助开发者高效实现图像到图像的风格转换。

x2y3z4a5b的博客 687

acm-(打表、找规律)2018-2019 ACM-ICPC, Asia Nanjing Regional Contest G.Pyramid

传送门 本考虑打表找规律,打表程序很好写,暴力枚举三角形的三个点即可。 然后打出前面几项:1、5、15、35、70、126、210、330...1、5、15、35、70、126、210、330...1、5、15、35、70、126、210、330... 貌似没什么规律,考虑对前后两项作除法,得到51,31,73,21,95,53...\frac 51,\frac 31,\frac 73,\frac 2 1,\frac 95,\frac 53...15​,13​,37​,12​,59​,35​... 乍..

qq_30361651的博客 586

DC综合中set_dft_signal的实战配置与优化策略

本文深入解析了DC综合中set_dft_signal命令的实战配置与优化策略。文章从命令的核心作用出发,详细拆解了-view、-type、-usage等关键参数,并通过扫描使能与时钟门控的实战案例,展示了如何正确配置以实现测试模式下的功耗优化。同时,文章总结了高级优化策略、与低功耗流程的协同方法以及常见错误排查清单,旨在帮助数字芯片设计工程师构建高可测性、低功耗的稳健DFT基础。

weixin_28347369的博客 381

【C语言】【PTA7-2】完素数

一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是素数。从键盘输入一系列正整数,输入以0结束。按输入顺序输出这些数中的素数。数据保证输入序列中至少有1个素数

xlTom_的博客 3197

素数(预处理)

描述 小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问,今天,小明想考考你对素数的认识。   问是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是素数。   给定一个区间,你能计算出这个区间内有多少个素数吗? Input 第一行输入一个正整数T,表示总共有T组数据(T <=...

Nothing9826的博客 1332

HDU 4548 -------素数

http://acm.hdu.edu.cn/showproblem.php?pid=4548 素数是指所有位累加和仍是一个素数素数。 所以,可以先打表求出1——1000000之间所有的素数。1——1000000之间的所有素数个数为78498个。 然后在这么多个素数中进行判断,将是素数的数再存到一个数组里面,1——1000000之间的素数有30123个。 以后每次区间询问的时候,就可

tointtao的专栏 533

素数;不要62

Time limit1000 msMemory limit32768 kBOSWindows 小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问,今天,小明想考考你对素数的认识。   问是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是素数。   给定一个区间,你能计算出这个区间内有

lzs_lazy 551

ACM-ICPC 2018 南京赛区网络预赛A(打表)(规律)

Description Alice, a student of grade 666, is thinking about an Olympian Math problem, but she feels so despair that she cries. And her classmate, Bob, has no idea about the problem. Thus he wants you...

Nerdant 373

poj 4548

Description   小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问,今天,小明想考考你对素数的认识。   问是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是素数。   给定一个区间,你能计算出这个区间内有多少个素数吗?   Input 第

我不坚强谁替我勇敢 659

HDU4548 素数【水

素数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 7779    Accepted Submission(s): 2721 Problem Description   小明对数的研究比较热爱,一谈到数,脑子里就涌现出

海岛Blog 3592

ACM之HDU————How many prime numbers(素数打表

前不久刚刚学会打素数表。 素数表就是提前把素数算好放在数组里,使用的时候直接拿出来就好了。 下面是例 How many prime numbers Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissio

小时的枫的博客 991

东北林业大学第12届ACM打表

东北林业大学第12届ACMhttps://www.nowcoder.com/acm/contest/45#question F和K对大数运算的转化 首先F,由于测试数据为接近10的100次方的大数,则可知需要用字符串进行存储,而由于是计算各位数之和,所以经过字符串存储之后的第一次计算得到的值最大也就是900(即100个9),这时已经由一个大数转化为了一个极小的数,直接转换成了i...

aiyuneng5167的博客 343

2017年山东省第八届ACM大学生程序设计竞赛 B Quadrat(sdut 3894) 打表找规律

Quadrat Time Limit: 1000MS Memory Limit: 65536KB Problem Description It is well-known that for any n there are exactly four n-digit numbers (including ones with leading zeros) that are self-s

富士山下 820

ACM-ICPC 2018 沈阳赛区网络预赛】K Supreme Number ---- 打表

目链接 意: 定义一个数为"Supreme Number"当且仅当 这个数本身是素数以及它数位组成的子序列也是素数 比如:17      1,7, 17都是素数所以 17满足意 现在给你一个N,让你输出不超过N 的最大 "Supreme Number" 做法: 首先,由子序列也是素数就确保了答案里面不存在重复的数位,比如373 所以最大的范围就是1e8,因为1~9   9个数嘛~...

WangMeow --- ᶘ ᵒᴥᵒᶅ ฅ^•ﻌ•^ฅ 351

HDU4548 素数(素数)

asd

Laelist的博客 689

寒假集训_专解_G - 素数

目 小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问,今天,小明想考考你对素数的认识。   问是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是素数。   给定一个区间,你能计算出这个区间内有多少个素数吗? Input 第一行输入一个正整数T,表示总共有T组数据(T <= 1000...

m0_46185124的博客 833

寒假训练数论G

目 小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问,今天,小明想考考你对素数的认识。   问是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是素数。   给定一个区间,你能计算出这个区间内有多少个素数吗? Input 第一行输入一个正整数T,表示总共有T组数据(T <= 1000...

weixin_45723759的博客 496

素数

Problem Description   小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问,今天,小明想考考你对素数的认识。   问是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是素数。   给定一个区间,你能计算出这个区间内有多少个素数吗?   Input

qq_35634181的博客 726

素数(函数)

PTA

2302_80325489的博客 761

hdu 4548 素数 金山居

素数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 0    Accepted Submission(s): 0 Problem Description   小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的

q775968375的专栏 2047
上一篇: 【ACM】杭电OJ 1877 又一版A+B(进制转换)
下一篇: 【数据结构】顺序循环队列及其实现(C语言)
__zzz__
博客等级 码龄8年 218粉丝 298原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值