| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1421 人关注过本帖
标题:求质数的有问题
只看楼主 加入收藏
longll555
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-2-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
求质数的有问题
#include <stdio.h>
 int main()
 {
     int n,i;
     printf("输入\n");
     scanf("%d",&n);
     for (i=2;i<n;i++)
     {
         if(n%i==0)break; printf("%d不是");
         else printf("%d是质数\n",n);
     }
用的是codeblocks提示else without a previous if哪里有错?

还有有两道作业题,一个是要求输入一个数然后反过来输出如123输出321;还有一个是爱因斯坦阶梯问题:设有一阶梯,每步跨2阶,最后剩1阶;每步跨3阶,最后剩2阶;每步跨5阶,最后剩4阶;每步跨6阶,最后剩5阶;每步跨7阶,正好到阶梯顶。问满足条件的最少阶梯数是多少 ?
两道题求思路~
搜索更多相关主题的帖子: 爱因斯坦 求质 
2011-04-13 12:22
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
做过的练习, 你拿去参考一下。
程序代码:

#include <stdio.h>
#include <stdbool.h>

int main (void) {

        bool isp (int num);
        int n;
        scanf ("%i",&n);
        if(isp(n)==true) { printf ("yes!\n"); }else{ printf ("No\n"); }
        return 0;

}
//isp,判断是否是质数的函数, 返回bool值
bool isp (int num) {
        bool result=true;
        int i;
        for (i=num-1;i>1;i--) {
                if (num%i==0) {
                        result=false;
                        break;
                }
        }
        return result;
}

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-13 12:25
longll555
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-2-28
收藏
得分:0 
stdbool.h
bool isp (int num)
if(isp(n)==true
bool isp (int num)
bool result=true;
i=num-1
不理解
2011-04-13 12:39
水晰
Rank: 3Rank: 3
来 自:新疆
等 级:论坛游侠
帖 子:39
专家分:113
注 册:2011-4-6
收藏
得分:0 
#include <stdio.h>
int main()
{
     int n,i;
     printf("输入\n");
     scanf("%d",&n);
     for (i=2;i<n;i++)
     {
         if(n%i==0)
         {
             printf("%d不是",n);
         
             break;
            
         
         }
        if(n==i+1) printf("%d是质数\n",n);
     }
     
}
2011-04-13 12:44
longll555
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-2-28
收藏
得分:0 
n什么要等于i+1?
2011-04-13 12:52
shangqiu100
Rank: 2
等 级:论坛游民
帖 子:7
专家分:11
注 册:2009-4-7
收藏
得分:5 
回复 4楼 水晰
你这里for循环的次数太多了。其实n/2就够了,或者(int)sqrt(n)
这个早就有数学证明的
2011-04-13 15:54
a85703559
Rank: 2
等 级:论坛游民
帖 子:22
专家分:43
注 册:2011-4-11
收藏
得分:5 
爱因斯坦阶梯问题:
程序代码:
#include <stdio.h>
int main(void)
{
    int i;
    for (i = 2; i <=10000; i++)//姑且就算10000以内满足条件的。
    {
        if (i % 2 == 1 && i %3 == 2 && i % 5 == 4 && i % 6 ==5 && i % 7 == 6)
            printf("%d ", i);
    }
    return 0;
}
2011-04-13 22:34
丨Xx丶沉沦灬
Rank: 1
来 自:湖南郴州
等 级:新手上路
帖 子:13
专家分:5
注 册:2011-4-10
收藏
得分:0 
#include"stdio.h"
#include"math.h"
void main()
{
    int i,n,flag;
    printf("please input n:");
    scanf("%d",&n);
    flag=1;
    for(i=1;i<=sqrt(n);i++)
        {
            if(n%i==0)
                {
                    flag=0;
                    break;
                }
             if(flag==1)
                printf("%d\n",n);
        }
}
这是我们老师叫我们的方法,用标记量,长是长了点,不过我觉得还蛮好理解的

众里寻她千百度
    蓦然回首
  那人却在厕所旁边处
2011-04-13 22:53
丨Xx丶沉沦灬
Rank: 1
来 自:湖南郴州
等 级:新手上路
帖 子:13
专家分:5
注 册:2011-4-10
收藏
得分:5 
图片附件: 游客没有浏览图片的权限,请 登录注册
稍微修改了下

众里寻她千百度
    蓦然回首
  那人却在厕所旁边处
2011-04-13 23:02
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:5 
程序代码:
//求质数的有问题
#include <stdio.h>
int main()
{
     int n,i;
     printf("输入\n");
     scanf("%d",&n);
     for (i=2;i<n;i++)
     {
         if(n%i==0) break;
         // printf("%d不是");
         //else printf("%d是质数\n",n);
     }
    
     if(i==n)
     printf("%d不是");
     else
     printf("%d是的");
    
     return 1;
}
你的输出语句不应该那在for里面!这样的话,你的输出就有问题!

   唯实惟新 至诚致志
2011-04-14 06:56
快速回复:求质数的有问题
数据加载中...
 
   



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

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