求200内的全部素数,把素数全部存入数组中,并由大到小排列数组
#include <iostream>
int prime(int n){
if (n<2) return 0;
for (int i=2;i<n;i++)
if (n%i==0) return 0;
return 1;
}
int main()
{
int t[200];
int j=0;
for (int i=0;i<200;i++)
t[i]=0;
for (int i=1;i<200;i++){
if (prime(i)){
t[j] = i;
j++;
}
}
int p[j-1];
for (int i = j-1;i>=0;i--)
p[j-i-1] = t[i];
for (int i = 0;i<j;i++)
std::cout<<p[i]<<'\t';
return 0;
}
/*
199 197 193 191 181 179 173 167 163 157
151 149 139 137 131 127 113 109 107 103
101 97 89 83 79 73 71 67 61 59
53 47 43 41 37 31 29 23 19 17
13 11 7 5 3 2
*/
for(int i=2; i<1000; i++)
{
// 判断 i 是否为质数
boolean isPrime = true;
for(int k=2; k<i; k++)
{
if( i % k == 0)
{
isPrime = false;
break;
}
}
// 如果是质数,则存到数组result里
if( isPrime )
{
result[ count ] = i;
count ++;
if(count >= result.length)
{
break; // 已经存满50个,则退出查找
}
}
}
// 把找到的质数打印输出
for(int i=0; i<count; i++)
{
System.out.println( result[i] );
}}}