1.求不超過n的有限域個數,有限域數是素數的指數(使用素數篩)ios
#include<iostream> using namespace std; int isshu[1005], iss[1005]; int main() { int n; while(cin>>n){ int res=0; for(int i=2;i<=n;++i){//素數篩,把素數都給標記出來 if(isshu[i]==0){ for(int j=i+i;j<=n;j+=i) isshu[j]=1; } } for(int i=2;i<=n;++i){ if(isshu[i]==0){ //若是是素數,則將素數的指數進行標記 for(int j=i;j<=n;j*=i) iss[j]=1; } } for(int i=2;i<=n;++i) //輸出結果 if(iss[i]!=0) res++; cout<<res<<endl; } return 0; }
2.判斷是否爲素數ssh
int isPrime(int k) { int j; for ( j=2; j<=sqrt(k); j++ ) { if(k%j==0) // 若是不爲素數返回0 { return 0; } } return 1; // 反之則返回1 }
3.求最小公倍數(a和b的乘積除最大公約數)spa
#include <iostream> using namespace std; int maxyue(int a,int b){ if(b==0) return a; return maxyue(b,a%b); } int main(){ int a,b; while(cin>>a>>b){ cout<<a*b/maxyue(a,b)<<endl; } return 0; }