ZOJ1489几乎一样的算法,一个AC,一个TLE,为什么?

victorwhz 2014-04-24 10:40:12
今天做ZOJ1489,自己写了个程序如下

#include <stdio.h>

int main()
{
int feed=0,result;
int n,i;
while (scanf("%d",&n))
{
result=2;
if (!feed)
{
feed=1;
}
else
{
printf("\n");
}
if (n<2||!(n%2))
{
printf("2^? mod 2 = 1");
}
else
{
for (i=1;result!=1;i++)
{
result*=2;
result%=n;
}
printf("2^%d mod 2 = 1",i);
}
}
return 0;
}


结果一直TLE
之后看了看别人的,拿去试了一下,就AC了,程序如下

#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
int n, temp, result;

while(cin >> n)
{
if((n & 0x1) == 0 || n < 2)
cout << "2^? mod " << n << " = 1" << endl;
else
{
temp = 1;
result = 1;
while(1)
{
temp *= 2;
temp %= n;
if(temp == 1)
break;
++result;
}
cout << "2^" << result << " mod " << n << " = 1" << endl;
}
}
return 0;
}
...全文
339 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
victorwhz 2014-04-26
  • 打赏
  • 举报
回复
........输出错了,人家要“2^i mod n = 1", 我给的"2^i mod 2 = 1"
victorwhz 2014-04-26
  • 打赏
  • 举报
回复
引用 3 楼 FancyMouse 的回复:
[quote=引用 2 楼 victorwhz 的回复:] [quote=引用 1 楼 FancyMouse 的回复:] while (scanf("%d",&n)) => while (scanf("%d",&n) == 1)
这个貌似不行,直接WA[/quote] 那说明你下面的代码有WA的问题[/quote]是的,谢谢
FancyMouse 2014-04-24
  • 打赏
  • 举报
回复
引用 2 楼 victorwhz 的回复:
[quote=引用 1 楼 FancyMouse 的回复:] while (scanf("%d",&n)) => while (scanf("%d",&n) == 1)
这个貌似不行,直接WA[/quote] 那说明你下面的代码有WA的问题
victorwhz 2014-04-24
  • 打赏
  • 举报
回复
引用 1 楼 FancyMouse 的回复:
while (scanf("%d",&n)) => while (scanf("%d",&n) == 1)
这个貌似不行,直接WA
FancyMouse 2014-04-24
  • 打赏
  • 举报
回复
while (scanf("%d",&n)) => while (scanf("%d",&n) == 1)
内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧