素数求解

cainiao000007 2005-11-25 04:37:33
本人编的程序如下:
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
void main()
{
int i,m,n;
cin>>m;
for(i=2;i<=m;i++)
{for(n=2;n<sqrt(m);n++)

if(i%n == 0)

continue;
else
cout<<i<<" ";
}

system("pause");
}
请问哪里出错了
输出的结果出问题.
谢谢了~~~
...全文
192 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
cainiao000007 2005-11-26
  • 打赏
  • 举报
回复
按上面ssh000(如风似水)的程序
本人输入100
然后屏幕显示:
请按下任意键继续....
然后随便按个键,就条出几个字
屏幕自动关了
这是什么回事呀~~
hoszone 2005-11-25
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
void main()
{
int i,m,n;
cin>>m;
for(i=2;i<=m;i++)
{
for(n=2;n<=sqrt(i);n++)

if(i%n == 0)

// continue;
break;
if(n>sqrt(i))
cout<<i<<" ";
}

system("pause");
}
你对素数的概念不了解,或者是的你想的有问题,你看看这个吧
lzp229 2005-11-25
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "math.h"

int sushu(int a);

main()
{
int m,n,r,b,t;
scanf("%d",&m);
scanf("%d",&n);
for(t=100;t<=200;t++)
{
b = sushu(t);
if(b==1)
printf("%d,",t);
}
// b = m^n;
if(m<n)
{
m=m^n;
n=m^n;
m=m^n;
}
while (n != 0) {
r = m%n;
m = n;
n = r;
}
printf("%d",m);

}

int sushu(int a)
{
int b,i,c;
b = sqrt(a);
for(i = 2; i <=b&&a%i != 0; i++)
{
;
}
if(i > b)return 1;
else
{
return 0;
}
}

这是一个完成你要的功能的。
cainiao000007 2005-11-25
  • 打赏
  • 举报
回复
麻烦下高手帮解下
偶要去上晚自习了,
明天再来看望大家~!!!
2005-11-25
cainiao000007 2005-11-25
  • 打赏
  • 举报
回复
恩 就是算M以内的素数
lzp229 2005-11-25
  • 打赏
  • 举报
回复
你的程序是要算出m以内的素数么?如果是,逻辑上不对
cainiao000007 2005-11-25
  • 打赏
  • 举报
回复
Loaded 'ntdll.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\kernel32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\apphelp.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\version.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\advapi32.dll', no matching symbolic information found.
Loaded 'C:\WINDOWS\system32\rpcrt4.dll', no matching symbolic information found.
The thread 0x3F8 has exited with code 0 (0x0).
The program 'C:\DOCUMENTS AND SETTINGS\CAITOU\桌面\C++\Debug\sdfasdfsdf.exe' has exited with code 0 (0x0).
这是调试的结果
lzp229 2005-11-25
  • 打赏
  • 举报
回复
调试贝。
不可能跟那个有关的。
cainiao000007 2005-11-25
  • 打赏
  • 举报
回复
好象解决了
但是要把#include<stdlib.h>跟system("pause");
删了,
删了又看不到结果..
晕了
要是不删的话 答案不对
dhongda 2005-11-25
  • 打赏
  • 举报
回复
该成
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
void main()
{
int i,m,n;
cin>>m;
for(i=2;i<=m;i++)
{for(n=2;n<sqrt(m);n++)

if(i%n == 0)

continue;
if(n>=sqrt(m)) cout<<i<<" ";
}



system("pause");
}

怎么觉得不应该不对的,你再调试调试
cainiao000007 2005-11-25
  • 打赏
  • 举报
回复
我按你的那种改了后
结果什么答案都没输出的.
我倒...
dhongda 2005-11-25
  • 打赏
  • 举报
回复
按找我上面的改应该是没问题的
cainiao000007 2005-11-25
  • 打赏
  • 举报
回复
好象还要添加个if(n<=i)
cainiao000007 2005-11-25
  • 打赏
  • 举报
回复
输出的是比如
2 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 ......
dhongda 2005-11-25
  • 打赏
  • 举报
回复
输出什么错误了?是不是你的程序输出了好多数?
cainiao000007 2005-11-25
  • 打赏
  • 举报
回复
还不行
cainiao000007 2005-11-25
  • 打赏
  • 举报
回复
现在知道需要添加个(n<=n).
dhongda 2005-11-25
  • 打赏
  • 举报
回复
把cout<<i<<" ";改成

{
if(n>=sqrt(m))
cout<<i<<" ";
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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