| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 535 人关注过本帖
标题:C 素数
只看楼主 加入收藏
六零六
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-21
收藏
 问题点数:0 回复次数:3 
C 素数
题目:判断101-200之间有多少个素数,并输出所有素数。
│#include"stdio.h" │
│#include"conio.h" │
│#include"math.h" │
│main() │
│{ │
│ int i,j,n=0; │
│ for(i=101;i<=200;i++) │
│ { for(j=101;j<=i;j++) │
│ if(i%j!=0) │
│ printf("\n"); │
│ n++; │
│ } │
│ printf("%d",i,n); │
│ │
│}
这有什么错吗?
搜索更多相关主题的帖子: 素数 
2006-12-13 21:26
abcBoy
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2006-12-13
收藏
得分:0 
小数字判质数:
[CODE]bool isPrime(int num)
{
int i,limit;
 if(num==2) return true;
if((num&1)==0)
return false;
else
{
limit=(int)sqrt((double)(num));
for(i=3;i<=limit;i+=2)
if(num%i==0)
return false;
return true;
}
}[/CODE]
大数判质(拉宾米勒测试)
[CODE]static long long g_aPrimeList[] = {
2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499
};
long long Montgomery( long long n, long long p, long long m )
{
long long k = 1;
n %= m;
while ( true )
{
if ( 0 != ( p & 1 ) )
{
if ( p == 1 ) return ( n * k ) % m;
k = ( k * n ) % m;
}
n = ( n * n ) % m;
p >>= 1;
}
}
bool RabbinMillerTest( long long n )
{
const long long nPrimeListSize = sizeof(g_aPrimeList) / sizeof(long long);
for ( int i = 0; i < nPrimeListSize; ++i )
{
if ( n / 2 + 1 <= g_aPrimeList[i] )
{
return true;
}
if ( 0 == n % g_aPrimeList[i] )
{
return false;
}
}
long long r = 0, m = n - 1;
while ( 0 == ( m & 1 ) )
{
m >>= 1;
r++;
}
const int nTestCnt =5;
for ( int i = 0; i < nTestCnt; ++i )
{
long long a = g_aPrimeList[ rand() % nPrimeListSize ];
if ( 1 != Montgomery( a, m, n ) )
{
long long j = 0;
long long e = 1;
for ( ; j < r; ++j )
{
if ( n - 1 == Montgomery( a, m * e, n ) )
{
break;
}
e <<= 1;
}
if ( j == r )
{
return false;
}
}
}
return true;
}[/CODE]

[此贴子已经被作者于2006-12-13 21:34:59编辑过]

2006-12-13 21:29
abcBoy
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2006-12-13
收藏
得分:0 

要判断一个数是否是质数,
从2到它的开方,判断它是否能被它们整除,如果能,就不是质数.如果不能,继续执行,直到循环结束,如果一直没能被整除,则它是质数.
根据这个,你再看看你的程序错在哪,应该就很容易知道哪错了.

2006-12-13 21:38
水灵圣君
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-12-14
收藏
得分:0 
就是哈,

努力才可能成功.但只有探讨.总结才会成功!想交朋友可加50580776或群34116097
2006-12-14 08:57
快速回复:C 素数
数据加载中...
 
   



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

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