| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 450 人关注过本帖
标题:一行判断合数的代码,请高手指点问题所在!Thanks:)
取消只看楼主 加入收藏
Evander
Rank: 1
等 级:新手上路
帖 子:4
专家分:3
注 册:2011-5-6
结帖率:0
收藏
已结贴  问题点数:10 回复次数:0 
一行判断合数的代码,请高手指点问题所在!Thanks:)
程序代码:
/*输入自然数n,求前n个合数(非素数),
其因子仅有2,3,或5。
*/
#include<iostream>
#include<stdio.h>
#include<time.h>
using namespace std;
int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    int n,count=0;
    bool ok=false,ok2=false;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=i;j++)
        {
            if(i%j==0)count++;//判断是否为合数setp1
                //cout<<i<<" "<<j<<" "<<count<<endl;
        }
        if(count>2)//判断是否为合数setp2
        {
            ok2=true;
            if((n%2==0)||(n%3==0)||(n%5==0))//素因子包含2、3或5
                ok=true;
            for(int n=1;n<=i;n++)
            {
                if((n!=i)&&(n!=1))
                {
                    if((n!=2)&&(n!=3)&&(n!=5))
                   {
                    if(i%n==0)ok=false;
                   }
                }
                
            }
        }
        if(ok&&ok2)
        {
            cout<<i<<" ";
            cout<<count<<endl;
        }
        count=0;
    }
    printf("Time used=%.21f",(double)clock()/CLOCKS_PER_SEC);
    return 0;
}

输入:10
结果:
4 3
5 2  不知道为啥ok和ok2都true之后还输出了5,其因数只有2...下同。。
6 4
7 2
9 3
10 4
Time used=0.000000000000000000000


鄙人琢磨了几个小时。。。实在脑壳都炸了,请高手指点迷津!
2012-01-15 23:10
快速回复:一行判断合数的代码,请高手指点问题所在!Thanks:)
数据加载中...
 
   



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

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