题目大意

给定一个数的质因子表达式,要求你计算机它的值,并减一,再对这个值进行质因数分解,输出表达式

题解

预处理一下,线性筛法筛下素数,然后求出值来之后再用筛选出的素数去分解。。。。其实主要就是字符串处理。。。

代码:

#include <stdio.h>
#include <string.h>
#include <math.h>
#define MAXN 10000
char str[MAXN],s[MAXN][7];
int prime[MAXN*5],cnt=0;
bool check[MAXN*5];
void get_prime()
{
int high=MAXN*5;
memset(check,false,true);
for(int i=2; i<=high; i++)
{
if(!check[i])
prime[cnt++]=i;
for(int j=0; j<cnt&&i*prime[j]<=high; j++)
{
check[i*prime[j]]=true;
if(i%prime[j]==0) break;
}
}
}
int get_sum(char *s)
{
int sum=0,len=strlen(s);
for(int i=0;i<len;i++)
sum=sum*10+s[i]-'0';
return sum;
}
int main()
{
char *p;
int ans;
get_prime();
while(gets(str))
{
bool first=false;
if(str[0]=='0') break;
int len=0;
p=strtok(str," ");
while (p!=NULL)
{
strcpy(s[len++],p);
p=strtok(NULL," ");
}
ans=1;
for(int i=0; i<len; i+=2)
{
int a,b;
a=get_sum(s[i]);
b=get_sum(s[i+1]);
ans*=(int)(pow(a*1.0,b*1.0));
}
ans--;
for(int i=cnt-1;i>=0&&ans!=1;i--)
{
if(ans%prime[i]==0)
{
int p=0;
while(ans%prime[i]==0)
{
p++;
ans/=prime[i];
}
if(!first)
{
printf("%d %d",prime[i],p);
first=true;
}
else
printf(" %d %d",prime[i],p);
}
}
printf("\n");
}
return 0;
}

最新文章

  1. HTML5本地数据库(SQLite)示例
  2. PSAM卡与CPU(用户卡)的操作过程
  3. 三种对话框的示例(alert,confirm,prompt)
  4. htaccess 增加静态文件缓存和压缩
  5. linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)
  6. jQuery过滤选择器
  7. SQL Server数据库(SQL Sever语言 存储过程及触发器)
  8. struts2视频学习笔记 22-23(基于XML配置方式实现对action的所有方法及部分方法进行校验)
  9. 仅显示INPUT下边框
  10. JVM调优总结 -Xms -Xmx -Xmn -Xss(转载)
  11. 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)-----初识WiX (转)
  12. 5451 HDU Best Solver
  13. java学习——集合框架(Collection,List,Set)
  14. 201521123099 《Java程序设计》第9周学习总结
  15. ACID 数据库正确执行四要素
  16. 【翻译】 Guice 动机——依赖注入的动机
  17. 《JavaScript DOM编程艺术》学习笔记(二)
  18. [Swift]LeetCode191. 位1的个数 | Number of 1 Bits
  19. python学习笔记——(三)文件操作
  20. MySQL复制相关参数详解

热门文章

  1. DatePicker (JQ-UI) 的z-index问题
  2. asp.net mvc 事务处理:Transactions
  3. App新版本提醒
  4. SqlServer2008 设置修改表设计限制
  5. 野指针、NULL指针和void*
  6. 学无止境,学习AJAX(一)
  7. 解决Win8.1 / Win Server 2012 r2 下安装 Visual Studio 时一直要求重新启动的问题(原创)
  8. java代码整理---正则表达式
  9. csdn搜索技巧
  10. unity 与 android 协调工作 注意事项