poj2635 The Embarrassed Cryptographer

本文提供了一种解决 POJ 2635 的有效方法,包括素数筛法优化、大数处理技巧及高效取模算法。通过预处理素数表并采用分段存储大数的方式,提高了程序运行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接:http://poj.org/problem?id=2635

首先说这道题的思路很简单:

1、素数打表,但是有一个细节,就是对打表后的数组最后的一个数要取一个大于1000000的数,因为在后面进行循环是否素数除尽使得判断条件是小于L,如果打表的数组最后一个数小于L,则循环一直进行下去,就导致了runtime error!!!我就是在这里错了好多次,而且自己检查了好多 遍也没有发现错误,最后看了别人上的博客,一看恍然大悟啊!

2、对k进行处理,因为数太大,读入的时候按照字符串处理,然后换成大进制数组,提高运算效率,可以换成千进制,但是进制也不能过大,因为取余后的数是小于1000000的,要保证原数加上取余后的数没有越界的.

3、最后就是对整个大数取模,就是对换成的高进制取余看是否被整除的!

#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int vis[1000005],t;
void fun()
{
	t=0;
	int i,j;
	for(i=1; i<=1000000; i++)
		vis[i]=1;
	for(i=2; i<=500000; i++)
	{
		j=i+i;
		while(j<=1000000)
		{
			vis[j]=0;
			j+=i;
		}
	}
	t=0;
	for(i=2;i<=1000000; i++)
		if(vis[i]==1)
		{
			vis[t++]=i;//储存的是素数的
//			printf("%d\n",vis[t-1]);
		}
	vis[t]=10000000;
//t代表的是1000000中素数的个数
}
int main()
{
	char s[105];
	int len,i,j,p,k;
	int a[40],b[40];
    fun();//找到素数 
	while(1)
	{
		scanf("%s%d",s,&p);
		if(s[0]=='0' && p==0)
			break;
		len=strlen(s);
        for(i=0; i<=39; i++)
			a[i]=0;
		i=-1;
		for(j=len-1; j>=0; j-=3)
		{
			   i++;
		   for(k=j-2; k<=j; k++)
		   {
			   if(k<0)
				   continue;
		       a[i]=a[i]*10+s[k]-'0';//分段存储的
		   }
		}
		len=i;//又一个长度的
		int sign=0;
	    i=0;
		for(i=0; vis[i]<p; i++) 
		{
			for(j=0; j<=len; j++)
				b[j]=a[j];
			for(j=len; j>0; j--)
				b[j-1]+=(b[j]%vis[i])*1000;
			if((b[0]%vis[i])==0)
			{
				sign=1;
				break;
			}
		}
		if(sign==1)
			printf("BAD %d\n",vis[i]);
		else
			printf("GOOD\n");
	}
	return 0;
}


 

内容概要:本文深入解析了扣子COZE AI编程及其详细应用代码案例,旨在帮助读者理解新一代低门槛智能体开发范式。文章从五个维度展开:关键概念、核心技巧、典型应用场景、详细代码案例分析以及未来发展趋势。首先介绍了扣子COZE的核心概念,如Bot、Workflow、Plugin、Memory和Knowledge。接着分享了意图识别、函数调用链、动态Prompt、渐进式发布及监控可观测等核心技巧。然后列举了企业内部智能客服、电商导购助手、教育领域AI助教和金融行业合规质检等应用场景。最后,通过构建“会议纪要智能助手”的详细代码案例,展示了从需求描述、技术方案、Workflow节点拆解到调试与上线的全过程,并展望了多智能体协作、本地私有部署、Agent2Agent协议、边缘计算插件和实时RAG等未来发展方向。; 适合人群:对AI编程感兴趣的开发者,尤其是希望快速落地AI产品的技术人员。; 使用场景及目标:①学习如何使用扣子COZE构建生产级智能体;②掌握智能体实例、自动化流程、扩展能力和知识库的使用方法;③通过实际案例理解如何实现会议纪要智能助手的功能,包括触发器设置、下载节点、LLM节点Prompt设计、Code节点处理和邮件节点配置。; 阅读建议:本文不仅提供了理论知识,还包含了详细的代码案例,建议读者结合实际业务需求进行实践,逐步掌握扣子COZE的各项功能,并关注其未来的发展趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡定的小Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值