1. 程式人生 > 其它 >判斷一個數的素因子個數

判斷一個數的素因子個數

技術標籤:一些小演算法素數篩

有感而發 ,就寫一下(doge
這裡手動@solemntee

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

int main(){
	ll n;cin>>n;int s=sqrt(n);
	int ans=1;
	for(int i=2;i<=s;i++){
		while(n%i==0){
			n/=i;
		}
		ans++;
	}
	if(n>1)ans++;//如果是個素數 n就不會被除到1 
	cout<<ans;
return 0; }

————————————————————————————————————————、
輸出一個非素數的所有素因子+個數

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

int main(){
	ll n;cin>>n;int s=sqrt(n);
	int ans=1;
	for(int i=2;i<=s;i++){
		bool flag=false; 
		while(n%i==0){
			n/=i;
			flag=true;
		}
		if(
flag)cout<<i<<" "; ans++; }cout<<endl; if(n>1)ans++;//如果是個素數 n就不會被除到1 cout<<ans; return 0; }