poj-2262
来源:互联网 发布:ucosii官方源码下载 编辑:程序博客网 时间:2024/05/18 03:34
#include <stdio.h>
#include <malloc.h>
#define MAX 1000000
bool prime[MAX] = {0};
void indicatePrime(bool * array, int length) {
for (int i = 2; i <= length/2; i++) {
for (int j = 2; j <= length/i; j++) {
array[i*j - 1] = 1;
}
}
}
void getPrimeSum(int sum, bool * indicateArray) {
for(int i = 3; i <= sum/2 ; i += 2) {
if ( (sum - i)%2 == 1 &&
indicateArray[i -1] == 0 &&
indicateArray[sum - i -1] == 0) {
printf("%d = %d + %d\n", sum, i, sum - i);
break;
}
}
}
void printPrimeSum(int num) {
getPrimeSum(num, prime);
}
int main() {
indicatePrime(prime, MAX);
int inputNum = 0;
while(1) {
scanf("%d", &inputNum);
if (inputNum) {
printPrimeSum(inputNum);
} else {
break;
}
}
#include <malloc.h>
#define MAX 1000000
bool prime[MAX] = {0};
void indicatePrime(bool * array, int length) {
for (int i = 2; i <= length/2; i++) {
for (int j = 2; j <= length/i; j++) {
array[i*j - 1] = 1;
}
}
}
void getPrimeSum(int sum, bool * indicateArray) {
for(int i = 3; i <= sum/2 ; i += 2) {
if ( (sum - i)%2 == 1 &&
indicateArray[i -1] == 0 &&
indicateArray[sum - i -1] == 0) {
printf("%d = %d + %d\n", sum, i, sum - i);
break;
}
}
}
void printPrimeSum(int num) {
getPrimeSum(num, prime);
}
int main() {
indicatePrime(prime, MAX);
int inputNum = 0;
while(1) {
scanf("%d", &inputNum);
if (inputNum) {
printPrimeSum(inputNum);
} else {
break;
}
}
}
题不难,素数筛子 + bitmap。
一开始没有直接求最大的素数表,而是来一个数求一次素数表,结果直接超时。
后来一开始就求了最大素数表,OK。
素数筛子要继续多练练,基本功能。
低级错误:
1. C数组语法忘了, int a[10] = {1} 只会把第一个设为1.
2. 因为数组从0开始的缘故,在以后再有类似的bitmap, 应该申请 size +1 的数组, 虽然浪费了一个, 但是在逻辑上更简洁,
否则,每次在真实数字和数组位置之间都要做 -1 转换,很容易遗漏出错。
自己学学数论还是有用的,起码能用一种正规的定量分析法了
0 0
- poj 2262
- POJ-2262
- poj 2262
- POJ 2262
- poj 2262
- poj 2262
- poj-2262
- POJ 2262
- POJ 2262
- POJ 2262
- poj 2262
- POJ 2262
- poj 2262 解题报告
- poj 2262 打表
- poj 2262 素数
- POJ 2262
- POJ 2262 解题报告
- POJ 2262 筛素法
- 第6届—校赛 小明的骰子
- VC++ 在CXXApp的InitInstance()函数中获取窗口句柄
- 编码转换
- PHP里10个鲜为人知但却非常有用的函数
- Linux之wpa_supplicant.conf文件详解
- poj-2262
- ServletInputStream 和FileInputStream 的区别 ServletInputStream取不到数据解决方法
- ZOJ-2311
- RGB码显示颜色->RGB颜色查询对照表
- How to deploy maven project to tomcat inside your eclipse
- 计算机视觉方面的三大国际会议是ICCV, CVPR和ECCV
- 面试杂题(六)替换空格
- 时间操作(JavaScript版)—根据不同区时显示相应的时间
- Android基础--Service完全解析