#include <stdio.h>
#include <string.h>
#define true 1
#define false 0
#define max 100000
int zhishu_1( long int *str)
{
long int c;
int i=0;
int k=0;
int j=0;
int len=0;
int num=0;
long int *temp;
long int *p;
temp=str;
while(*(str++)!=0)
{
len++;
}
str=temp;
printf("%d is length\n",len);
// code section 1
for(k=3;k<len;k++)
{
for(i=2;i<=k;i++)
{
if(*(str+k)%i==0)
{
*(str+k)=0;
}
}
}
//code section 2
/*
for(k=3;k<len;k++)
{
for(j=1;j<=k;j++)
{
if(*(str+k)%*(str+j)==0)
{
*(str+k)=0;
}
}
}
*/
printf("step 1 is done\n");
str=temp;
for(k=1;k<len-1;k++)
{
if(*(str+k)!=0)
{
num++;
}
}
printf("%d= is zhishu geshu ",num);
}
int main()
{
long int buf[max];
int x,y;
for(x=1;x<=max;x+=1)
{
buf[x-1]=x;
}
zhishu_1(buf);
return 0;
}
用指针求10万内的质数个数,方法是看这个数能不能整除2到n-1之间的数,但是使用指针整除指针时取余,运行无结果,使用指针除整数取余时运行结果正常的原因是什么?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- zhuabashou1 2021-08-12 14:22关注
问题点在于 code section2 的(str+k)%(str+j)这里如果j<=1,也可以正常运行,大于1就运行无结果,返回值是一个long int 的大小。
解决 无用评论 打赏 举报
悬赏问题
- ¥50 easyExcel模板 动态单元格合并列
- ¥15 res.rows如何取值使用
- ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
- ¥15 CSP算法实现EEG特征提取,哪一步错了?
- ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
- ¥15 vue3前端取消收藏的不会引用collectId
- ¥15 delphi7 HMAC_SHA256方式加密
- ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
- ¥15 下列c语言代码为何输出了多余的空格
- ¥15 kali linux用wget archive.kali.org/archive-key.asc指令下载签名无效(失败)