HDOJ 1164 Eddy's research
2024-09-03 23:41:04
上一篇已经讲了,但是转载别人的很乱,这里自己根据blog里面写的思路,重新写过了一个程序
#include <iostream>
#include <malloc.h>
#include <math.h>
#define N 65535 int primes[N];
int SimpleDivsion()//生成1-65535之间所有的质数
{
int count=;
int i,j;
//int *primes = (int *)malloc(sizeof(int)*n);
primes[count++]=; for(i=;i<=;i++)
{
for(j=;j<=(int)sqrt((double)i);j++)//这里要进行强制转换
{
if(i%j==)
break;
}
if(j>(int)sqrt((double)i))
{
primes[count++]=i;
}
}
return count;
//for(i=0;i<count;i++)
//printf("%d ",primes[i]);
//printf("\n");
} int main()
{
int test,i,count;
count=SimpleDivsion();
while(scanf("%d",&test)!=EOF)
{
int flag=;
i=;
for(;i<count;i++)
{
if(test%primes[i]==)
{
if(flag)
{
flag=;
printf("%d",primes[i]);
}
else
printf("*%d",primes[i]);
test=test/primes[i];
i=-;//每次都要重新开始,为什么是-1.因为执行i++后就是0,有没有更好的方法?
//将if(test%primes[i]==0)这句话换成while(test%primes[i]==0)即可将i=-1去掉
}
if(test==)
break;
}
printf("\n");
}
}
最新文章
- R内存管理与垃圾清理
- no-proxy 和proxy 的区别
- VS2010项目缺少组件
- JavaScript求和
- SpringMVC从Controller跳转到另一个Controller
- LoadRunner中响应时间与事物时间详解
- uboot---linux
- C#_自动化测试 (四) 自动卸载软件
- 被FBI点名的中国黑客-Lion
- Json遇到引号需要转义的问题
- Here文档
- NDk编译opencv for Android,并引用在Unity3d游戏中的一般步骤
- APICloud常用模块
- workbench的schema讲解一:(维度dimension设置的基本内容)
- C# Azure 远程调试
- python3编译安装
- 使用mybatisgenerator 辅助工具逆向工程
- [转] What is a Full Stack developer?
- 【FJOI2016】建筑师
- VS2010没有Intellisense(智能感知)的解决办法