#include <stdio.h>
#include <iostream>
using namespace std;
bool isprime ( int ) ;
int main ( ) {
int n;
cin>> n;
if ( isprime ( n) )
cout<< "the number is prime" ;
else
cout<< "the number is not prime" ;
system ( "pause" ) ;
return 0 ;
}
bool isprime ( int m) {
int i;
for ( i= 2 ; i<= sqrt ( 1.0 * m) ; i++ )
if ( m% i== 0 )
return false ;
return true ;
}
如果一个两位正整数是质数,将组成它的两个数字交换位置后,形成的整数仍然是质数,则称这样的数为绝对质数(如13,17),编写一个程序,找出所有的绝对质数。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main ( ) {
int i, j, n, m;
cin>> n;
m= ( n% 10 ) * 10 + n/ 10 ;
if ( n< 10 || n> 99 )
exit ( 0 ) ;
for ( i= 2 ; i<= sqrt ( 1.0 * n) ; i++ )
if ( n% i== 0 )
break ;
for ( j= 2 ; j<= sqrt ( 1.0 * m) ; j++ )
if ( m% j== 0 )
break ;
if ( i> sqrt ( 1.0 * n) && j> sqrt ( 1.0 * m) )
printf ( "%d是绝对素数\n" , n) ;
else
printf ( "%d不是绝对素数\n" , n) ;
system ( "pause" ) ;
return 0 ;
}
编写函数int fun(int lim,int aa[MAX]),该函数的功能是求出小于或等于lim的所有素数并放在数组aa中,该函数返回所求出的素数的个数,如lim为15时有2、3、5、7、11、13共6个。
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
#define MAX 100
int fun ( int lim, int aa[ MAX] ) ;
int main ( ) {
int n, aa[ MAX] ;
scanf ( "%d" , & n) ;
printf ( "%d\n" , fun ( n, aa) ) ;
system ( "pause" ) ;
return 0 ;
}
int fun ( int lim, int aa[ MAX] ) {
int i, j, num= 0 , flag;
for ( i= 2 ; i<= lim; i++ ) {
flag= 1 ;
for ( j= 2 ; j<= sqrt ( 1.0 * i) ; j++ )
if ( i% j== 0 ) {
flag= 0 ;
break ;
}
if ( flag== 1 )
num++ ;
}
return num;
}