| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 549 人关注过本帖
标题:请教素数的问题!
只看楼主 加入收藏
starvip
Rank: 2
等 级:论坛游民
帖 子:6
专家分:20
注 册:2009-4-28
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:8 
请教素数的问题!
#include<stdio.h>
#include<math.h>
void main()
{
    int i,j,n,sum = 0,count;
    printf("Input n:");
    scanf("%d",&n);
    for(i = 2;i <= n;i++)
    {
        for(j = 2;j <= sqrt(n);j++)
        {
        
            if(i % j == 0)
                break;
            if(i >= j+1)
            {
                printf("素数为%d\n" + i);
                count++;
                sum += i;
            }
        }
    }
    printf("sum = %d,count = %d",sum,count);
}
请大家帮我解决下,为什么程序运行为出现乱码呢,PS:告诉为什么,呵呵,谢谢大家了!

[ 本帖最后由 starvip 于 2010-5-11 12:02 编辑 ]
搜索更多相关主题的帖子: 素数 
2010-05-11 12:01
xu362726904
Rank: 6Rank: 6
等 级:侠之大者
帖 子:160
专家分:471
注 册:2009-6-18
收藏
得分:2 
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
main()
{
    int i,j,n,sum = 0,count=0;//count要有初值
    printf("Input n:");
    scanf("%d",&n);
    for(i = 2;i <= n;i++)
    {
        for(j = 2;j <= sqrt(n);j++)
        {
        
            if(i % j == 0)
                break;
            if(i >= j+1)
            {
                printf("素数为%d\n" , i);//i的前面是逗号
                count++;
                sum += i;
            }
        }
    }
    printf("sum = %d,count = %d",sum,count);
    system("pause");
}
2010-05-11 12:07
kinwyb
Rank: 4
等 级:业余侠客
帖 子:134
专家分:244
注 册:2009-3-7
收藏
得分:0 
2楼的算法好像有问题,算出来的不是素数是奇数!!!

[ 本帖最后由 kinwyb 于 2010-5-11 12:32 编辑 ]

学习c语言痛苦!!但是要坚持~~
2010-05-11 12:30
kinwyb
Rank: 4
等 级:业余侠客
帖 子:134
专家分:244
注 册:2009-3-7
收藏
得分:8 
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
main()
{
    int i,j,n,sum = 0,count=0;
    printf("Input n:");
    scanf("%d",&n);
    for(i=2;i<=n;i++)
    {
        for(j=2;j<=sqrt(i);j++)
        {
            if(i%j==0)
                break;
        }
        if(j>sqrt(i))
        {
            printf("素数为%d\n",i);
             count++;
              sum += i;
        }
    }
    printf("sum = %d,count = %d",sum,count);
    system("pause");
}

学习c语言痛苦!!但是要坚持~~
2010-05-11 13:16
soonjing
Rank: 2
等 级:论坛游民
帖 子:6
专家分:26
注 册:2010-5-10
收藏
得分:0 
int issushu(int n)
{
    int i;
    if(n<2) return 0;
    for(i=2;i<=sqrt(n);i++)
       if (n%i==0)
       break;
    if(i>sqrt(n)) return 1;
    else return 0;
}
判断一个数是否为素数的函数。
2010-05-11 13:30
xu362726904
Rank: 6Rank: 6
等 级:侠之大者
帖 子:160
专家分:471
注 册:2009-6-18
收藏
得分:0 
没注意楼主的算法有问题。只是改了他说的错误。I'm sorry!
2010-05-11 13:35
starvip
Rank: 2
等 级:论坛游民
帖 子:6
专家分:20
注 册:2009-4-28
收藏
得分:0 
回复 4楼 kinwyb
4楼正解,在此谢谢各位的帮助!
2010-05-11 14:08
ZZlove
Rank: 2
等 级:论坛游民
帖 子:29
专家分:28
注 册:2010-3-7
收藏
得分:0 
回复 5楼 soonjing
求解释
2010-06-02 00:04
zhuxu0423
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:59
专家分:101
注 册:2010-4-12
收藏
得分:0 
#include<iostream>
#include<cmath>
#include<queue>
using namespace std;
int p[9974],a,b,t[4],f[9974];
struct node
{int n,s;};
void init()
{int i,j;
for(i=1009;i<9974;i++)
 {for(j=2;j<=sqrt((double)i);j++)
 if(i%j==0)
  break;
 if(j>sqrt(double(i)))
  p[i]=i;
 }
}
int bfs()
{queue<node> q;
node st={a,0};
f[a]=1;
q.push(st);
while(!q.empty())
{node ct=q.front();
q.pop();
int temp=ct.n,i=0,j,n,k=1;
while(temp)
 {t[i++]=temp%10;
 temp/=10;
 }
for(j=0;j<4;j++,k*=10)//对应数字的四个位置
for(i=0;i<=9;i++)//分别替换成0到9的数字,判断生成的数字是否是素数,是否已存在,是否是目标数
  {
  n=ct.n-t[j]*k+i*k;
  if(n==b)
   return ct.s+1;
  if(n!=ct.n&&p[n]&&!f[n])
   {f[n]=1;
   node ad={n,ct.s+1};
   q.push(ad);
   }
  }
}
}
int main()
{init();
int c;
//scanf("%d",&c);
while(scanf("%d%d",&a,&b)==2
)
{memset(f,0,sizeof(f));
if(a==b)
 puts("0");
else
 printf("%d\n",bfs());
}
}
2010-06-02 13:20
快速回复:请教素数的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023928 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved